Ir ao conteúdo
  • Cadastre-se

Pietra Ester

Membro Pleno
  • Posts

    36
  • Cadastrado em

  • Última visita

Tudo que Pietra Ester postou

  1. Estou fazendo um exercicio de estruturas, mas está com problemas na impressão, está passando direto. Preciso validar o cpf tambem e não sei como faço isso. /*Exercício: Fazer o algoritmo e o programa em C para ler N registros de alunos contendo os seguintes campos: - código (int) - nome (caractere) - cpf (caractere) - notas dos 4 trimestres (vetor de 4 valores reais) Obs: Ao ler os dados do aluno verifique se o CPF está correto, utilize uma função para isto. Imprima os resultados lidos em ordem decrescente de código do aluno e calcule a média das 4 notas.*/ #include <stdio.h> //biblioteca padrão #include <stdlib.h> #include <locale.h> //biblioteca de idiomas #include <conio.h> //biblioteca do fflush #include <string.h> //biblioteca de strings #define Tam_nome 50 #define N 2 //prototipos de funçoes char valida_cpf(); void cabecalho(); void leitura(); void ordena(); void imprime(); //definição usunado typedef typedef struct { int cod; char nome[Tam_nome]; char cpf; float notas [4]; } turma; void leitura(turma reg[], int T) { float media, soma=0; int i, j; for(i=0; i<T; i++) { printf("Cod: "); scanf("%d", &reg[i].cod); fflush(stdin); printf("Nome do %do. aluno: ", i+1); gets(reg[i].nome); fflush(stdin); printf("CPF: "); scanf("%f", &reg[i].cpf); fflush(stdin); for(j=0; j<4; j++) { printf(" %da. NOTA: ", j+1); scanf("%f", &reg[i].notas[j]); } fflush(stdin); for(j=0; j<4; j++){ soma = soma + reg[i].notas[j]; media = soma / N; } printf("-----------------------------\n"); } } void ordena(turma reg[], int T) { int i, j; turma aux; for(i=0; i<T-1; i++) { for(j=i+1; j<T; j++) { if ((reg[i].cod, reg[j].cod) > 0) { aux = reg[i]; reg[i] = reg[j]; reg[j] = aux; } } } } void imprime(turma reg[], int T) { int i; float media; system("cls"); printf("Cod Nome CPF Media\n"); printf("------------------------------------------------------\n"); fflush(stdin); for(i=0; i<T; i++) { printf("%-5d %-15s %-5c %5.2f\n", reg[i].cod, reg[i].nome, reg[i].cpf, media); printf("------------------------------------------------------\n"); } } void cabecalho() { printf(" =============================================================\n" " ==================== SISTEMA ESCOLAR ========================\n" " =============================================================\n"); } int main() { turma reg[N]; cabecalho(); leitura(reg, N); ordena(reg, N); cabecalho(); imprime(reg, N); return 0; }
  2. @Ricardov Ja resolvi, recuperei meu oendrive, atraves desse site com programas especificos para cada fabricante de pendrive https://www.usbdev.ru/files/phison/phisonrestore/
  3. @arfneto então moço, obgda pelo seu feedback construtivo, meu professor na faculdade esta me ensinando a programar assim, ele ensinou a criar parametros e retornar coisas, mas ainda não prendi a colocar parametros e também não são obrigatórios meu professor disse. Bom, a parte que estou é ainda na mesma, ainda estou pensando como posso fazer para esconder o tabuleiro inicialmente e mostrar as coordenadas jogadas. Esta assim por enquanto, eu não coloco acento no nome das funções, é o editor do forum que coloca automaticamente: #define F_LIN 4 //constante de quantidade de linhas nivel fácil #define F_COL 4 //constante de quantidade de colunas nivel fácil //bibliotecas #include <stdio.h> //biblioteca padrão #include <stdlib.h> //biblioteca da alocação dinâmica #include <locale.h> //biblioteca de idiomas #include <time.h> //biblioteca de aleatória #include <string.h> //biblioteca para strings #include <windows.h>//biblioteca do sleep //PROTÓTIPOS DE FUNÇÕES char fácil(); void cabecalho(); //variavel global int lin, col, lin2, col2, k=0, pts=0, acertos=0, jogadas=0; char nome[50][50]; //FUNÇÃO PRINCIPAL int main() { //variaveis int difi, opcao, i = -1; //idioma em português setlocale(LC_ALL, "Portuguese"); //cor do sistema //system("color 1e"); do{ //menu cabecalho(); printf("\t\t\t\t\t\t[1] JOGAR\n"); printf("\t\t\t\t\t\t[2] TUTORIAL\n"); printf("\t\t\t\t\t\t[3] CRÉDITOS\n"); printf("\t\t\t\t\t\t[4] SAIR\n\n"); printf("\t\t\t\t\t\tOpção: "); scanf(" %d", &opcao); printf("-------------------------------------------------\n"); switch (opcao) { case 1: //lê o nome do jogador system("cls"); cabecalho(); printf("\t\t\t\t-------------------------------------------------\n"); printf("\t\t\t\t> NOME DO JOGADOR > "); i++; // Caso sejam 50 jogadores no máximo, faça uma condição que verifica isso com base no valor de i scanf(" %49[^\n]", nome[i]); printf("\t\t\t\t-------------------------------------------------\n"); printf("\t\t\t\t"); system("Pause"); system("cls"); do { cabecalho(); //jogador escolhe o nível da dificuldade printf("\t\t\t\t> %s, escolha o nível de dificuldade: \n\n", nome[i]); printf("\t\t\t\t\t\t[1] fácil\n"); printf("\t\t\t\t\t\t[2] Médio\n"); printf("\t\t\t\t\t\t[3] Difícil\n\n"); printf("\t\t\t\t\t\tOpção: "); scanf(" %d", &difi); //menu de opções de níveis de dificuldade switch (difi) { case 1: system("cls"); //imprime o tabuleiro fácil(); printf("-------------------------------------------------\n"); break; case 2: system("cls"); printf("-------------------------------------------------\n"); //medio(); printf("-------------------------------------------------\n"); break; case 3: system("cls"); printf("-------------------------------------------------\n"); //difícil(); printf("-------------------------------------------------\n"); break; default: system("cls"); cabecalho(); printf("\t\t\t\t-------------------------------------------------\n"); printf("\t\t\t\t> Opção inválida!\n"); printf("\t\t\t\t-------------------------------------------------\n"); Sleep(2000); system("cls"); } } while(difi > 1 || difi < 3); break; case 2: system("cls"); cabecalho(); printf("\t\t\t\t-------------------------------------------------\n"); printf("\t\t\t\t > TUTORIAL:\n"); printf("\t\t\t\t-------------------------------------------------\n"); printf("\t\t\t\t # O objetivo do jogo é achar um par de cada carta.\n\t\t\t\t # Alcançar 800 pontos no nível fácil.\n\t\t\t\t # Alcançar 3200 pontos no nível médio. \n\t\t\t\t # Alcançar 5000 pontos no nível difícil.\n\n\t\t\t\t # Boa sorte! :)\n\n"); printf("\t\t\t\t-------------------------------------------------\n"); printf("\t\t\t\t"); system("Pause"); system("cls"); break; case 3: system("cls"); cabecalho(); printf("\t\t\t\t-------------------------------------------------\n"); printf("\t\t\t\t > CRÉDITOS:\n"); printf("\t\t\t\t-------------------------------------------------\n"); printf("\t\t\t\tAutor: Pietra Ester\n" "\t\t\t\tEngenharia de Software \n\n" "\t\t\t\tEsse código foi escrito por Pietra, compilado e\n\t\t\t\ttestado sobre o Windows 11 Home Single Language,\n\t\t\t\tsistema operacional de 64 bits.\n\n" "\t\t\t\tIDE: Dev-C++ 5.11\n"); printf("\t\t\t\t-------------------------------------------------\n"); printf("\t\t\t\t"); system("Pause"); system("cls"); break; case 4: system("cls"); printf("> SAINDO DO PROGRAMA...\n"); exit(0); default: system("cls"); cabecalho(); printf("\t\t\t\t-------------------------------------------------\n"); printf("\t\t\t\t> Opção inválida!\n"); printf("\t\t\t\t-------------------------------------------------\n"); Sleep(2000); system("cls"); } } while(opcao > 1 || opcao < 4); return 0; } //funcão de cabeçalho void cabecalho(){ printf("\t\t\t\t/////////////////////////////////////////////////\n"); printf("\t\t\t\t///////// BEM VINDO AO JOGO DA MEMÓRIA //////////\n"); printf("\t\t\t\t/////////////////////////////////////////////////\n\n"); } //FUNÇÃO QUE GERA TABULEIRO DE NÍVEL FÁCIL char fácil() { char** tabuleiro; char cartas[F_LIN * F_COL / 2] = {'a', 'b', 'c', 'd', 'e', 'f','g','h'};//'i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','!','$','/','+','-','?'}; int i, j, c=0, cont=0; srand(time(NULL)); // aloca um vetor de F_LIN ponteiros para as linhas tabuleiro = (char**) malloc (F_LIN * sizeof (char*)) ; // aloca cada uma das linhas (vetores de F_COL char) for (i=0; i < F_LIN; i++) { tabuleiro[i] = (char*) malloc (F_COL * sizeof (char)) ; } //preenche com caracteres aleatórios for (i=0; i<F_LIN; i++) { for (j=0; j<F_COL;j++) { tabuleiro [i][j]='*'; } } while (c<F_LIN*F_COL/2) { i = rand() % F_LIN; j = rand() % F_COL; if (tabuleiro[i][j] == '*') { tabuleiro [i][j] = cartas[c]; cont= cont + 1; } else { continue; } if (cont==2) { c=c+1; cont=0; } } //âncora para nova jogada jogada: system("cls"); jogadas++; //status do jogo cabecalho(); printf("\t\t\t\t-------------------------------------------------\n"); printf("\t\t\t\t> JOGADOR : %s\n" "\t\t\t\t> NÍVEL : Fácil\n" "\t\t\t\t> PONTOS : %d pts\n" "\t\t\t\t> ACERTOS : %d\n" "\t\t\t\t> JOGADAS : %d\n", nome[k], pts, acertos, jogadas); printf("\t\t\t\t-------------------------------------------------\n"); //imprime a matriz printf("\t\t\t\t\t "); for(i=0; i<4; i++) { printf("%d ", i); } printf("\n"); for (i=0; i < F_LIN; i++) { printf("\t\t\t\t\t "); printf(" %d | ", i); for (j=0; j < F_COL; j++) { printf("%c | ", tabuleiro[i][j]); } printf("\n"); } printf("\t\t\t\t-------------------------------------------------\n"); //lógica do jogo while(pts < 800) { printf("\n\t\t\t\t> Digite a linha e coluna respectivamente: "); scanf(" %d %d", &lin, &col); printf("\t\t\t\t> Digite a linha e coluna respectivamente: "); scanf(" %d %d", &lin2, &col2); if (lin <0 || lin > 3 || col < 0 || col > 3) { printf("\t\t\t\t-------------------------------------------------\n\n"); printf("\t\t\t\tJOGADA INVÁLIDA! Digite números de 0 a 3!\n\n"); printf("\t\t\t\t"); system("pause"); goto jogada; } else if (lin2 <0 || lin2 > 3 || col2 < 0 || col2 > 3) { printf("\t\t\t\t-------------------------------------------------\n\n"); printf("\t\t\t\tJOGADA INVÁLIDA! Digite números de 0 a 3!\n\n"); printf("\t\t\t\t"); system("pause"); goto jogada; } else if(lin == lin2 && col == col2) { printf("\t\t\t\t-------------------------------------------------\n\n"); printf("\t\t\t\t\tJOGADA INVÁLIDA! Lugar ocupado!\n\n"); Sleep(2000); goto jogada; } else if(tabuleiro[lin][col] == tabuleiro[lin2][col2]) { printf("\n\t\t\t\t\tBOOAAA! Você ganhou +100 pts!\n\n"); Sleep(2000); pts = pts + 100; acertos ++; goto jogada; } else if (tabuleiro[lin][col] != tabuleiro[lin2][col2]) { printf("\n\t\t\t\t\t\t ERROU!!!\n\n"); Sleep(2000); goto jogada; } } if(pts == 800) { jogadas--; acertos--; printf("\n\t\t\t\t***PARABÉNS %s!\n\t\t\t\t*Você alcançou os 800 pontos com %d jogadas!*\n\t\t\t\t***Sua memória é muito boa!!!* 8)\n", nome[k], jogadas); printf("\t\t\t\t\t\t _1_ \n"); printf("\t\t\t\t\t\t |o| \n\n"); printf("\t\t\t\t"); system("pause"); system("cls"); exit(0); } // libera a memória da matriz for (i=0; i < F_LIN; i++) { free(tabuleiro[i]); } free(tabuleiro); }
  4. @mauro_b obgda pela ajuda! é isso mesmo. @Lucca Rodrigues obgda pela ajuda!, falava o incremento mesmo por isso o nome do jogador sumia depois que atualiza a tela. @devair1010 exatamente, não tem uma condição para mostrar as jogadas, e vou criar outro tabuleiro igual o @mauro_b mencionou. @Lucca Rodrigues obdga por corrigir!!!
  5. Olá! estou desenvolvendo um jogo em c, um jogo da memória, já postei no fórum um tópico com o mesmo programa e consegui solucionar o problema. Agora estou na reta final do meu programa e apresento o seguinte problema: depois que esconde o tabuleiro, o usuário faz sua jogada na matriz dinâmica de char com o malloc, mas a jogada não mostra no tabuleiro, não vira as cartas, apenas verifica as condições do IF e não mostra as cartas jogadas pelo usuário no tabuleiro escondido. São 3 níveis de dificuldade que criei, estou testando o jogo no nível fácil por enquanto. Como posso desvirar as cartas selecionadas pelo usuário? #include <stdio.h> //biblioteca padrão #include <stdlib.h> //biblioteca da alocação dinâmica #include <locale.h> //biblioteca de idiomas #include <time.h> //biblioteca de aleatória #include <string.h> //biblioteca para strings #include <windows.h>//biblioteca do sleep #define F_LIN 4 //biblioteca de qntd de linhas nivel fácil #define F_COL 4 //biblioteca de qntd de colunas nivel fácil //PROTÓTIPOS DE FUNÇÕES void linha(); char fácil(); //variavel global int lin, col, lin2, col2, pts=0; char nome[50][50]; //FUNÇÃO QUE GERA LINHA void linha(){ printf("-------------------------------------------------\n"); } //FUNÇÃO QUE GERA TABULEIRO DE NÍVEL FÁCIL char fácil(){ char **tabuleiro, cartas[F_LIN * F_COL / 2] = {'a', 'b', 'c', 'd', 'e', 'f','g','h'};//'i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','!','$','/','+','-','?'}; int i, j, c=0, cont=0; srand(time(NULL)); // aloca um vetor de F_LIN ponteiros para as linhas tabuleiro = (char **) malloc (F_LIN * sizeof (char*)) ; // aloca cada uma das linhas (vetores de F_COL char) for (i=0; i < F_LIN; i++) tabuleiro[i] = (char *) malloc (F_COL * sizeof (char)) ; //preenche com caracteres aleatórios for (i=0; i<F_LIN; i++){ for (j=0; j<F_COL;j++) tabuleiro [i][j]='*'; } while (c<F_LIN*F_COL/2) { i = rand() % F_LIN; j = rand() % F_COL; if (tabuleiro[i][j] == '*') { tabuleiro [i][j] = cartas[c]; cont= cont + 1; } else { continue; } if (cont==2) { c=c+1; cont=0; } } //âncora para nova jogada jogada: system("cls"); //status do jogo linha(); printf("> NÍVEL : Fácil\n"); printf("> JOGADOR: %s\n", nome[i]); printf("> PONTOS : %d pts\n", pts); linha(); //imprime a matriz printf(" "); for(i=0; i<4; i++){ printf("%d ", i); } printf("\n"); for (i=0; i < F_LIN; i++){ printf(" %d | ", i); for (j=0; j < F_COL; j++){ //esconde o tabuleiro if(pts < 800) printf(" | "); else{ printf("%c | ", tabuleiro[i][j]);} } printf("\n"); } linha(); //lógica do jogo while (pts < 800){ printf("\n> Digite a linha e coluna respectivamente: "); scanf("%d %d", &lin, &col); printf("> Digite a linha e coluna respectivamente: "); scanf("%d %d", &lin2, &col2); if (lin <0 || lin > 4 || col < 0 || col > 4){ linha(); printf("\t\t JOGADA INVÁLIDA!\n\t\t*Digite números de 0 a 4.\n\n"); system("pause"); goto jogada; } else if (lin2 <0 || lin2 > 4 || col2 < 0 || col2 > 4){ linha(); printf("\t\t JOGADA INVÁLIDA!\n\t\t*Digite números de 0 a 4.\n\n"); system("pause"); goto jogada; } else if(lin == lin2 && col == col2){ linha(); printf("\t\t JOGADA INVÁLIDA!\n\t\t*Lugar ocupado!\n\n"); Sleep(2000); goto jogada; } else if(tabuleiro[lin][col] == tabuleiro[lin2][col2]){ printf("\n\t\t BOOAAA!\n \t\t*Ganhou +100 pts!\n\n"); Sleep(2000); pts = pts + 100; goto jogada; } else if (tabuleiro[lin][col] != tabuleiro[lin2][col2]){ printf("\n\t\tERROU!!!\n\n"); Sleep(2000); goto jogada; } } if(pts == 800){ printf("\n ***PARABÉNS %s você alcançou os 800 pontos!*\n ***Sua memória é muito boa!!!* 8)\n", nome[i]); printf("\t\t _1_ \n"); printf("\t\t |o| \n\n"); system("pause"); system("cls"); exit(0); } // libera a memória da matriz for (i=0; i < F_LIN; i++){ free (tabuleiro[i]) ; } free (tabuleiro) ; } //FUNÇÃO PRINCIPAL int main(){ //variáveis int difi, opcao, i; //limpar o buffer do teclado fflush(stdin); //idioma em português setlocale(LC_ALL, "Portuguese"); //cor do sistema system("color 1e"); do{ //menu linha(); printf(" ****** BEM VINDO AO JOGO DA MEMÓRIA ******\n"); linha(); printf("\n\t\t[1] JOGAR\n"); printf("\t\t[2] TUTORIAL\n"); printf("\t\t[3] SAIR\n\n"); printf("\t\tOpção: "); scanf("%d", &opcao); linha(); switch (opcao){ case 1: //lê o nome do jogador system("cls"); linha(); printf("> NOME DO JOGADOR > "); fflush(stdin); gets(nome[i]); linha(); system("Pause"); system("cls"); do{ //jogador escolhe o nível da dificuldade printf("> %s, escolha o nível de dificuldade: \n\n", nome[i]); printf("\t\t[1] Fácil\n"); printf("\t\t[2] Médio\n"); printf("\t\t[3] Difícil\n\n"); printf("\t\tOpção: "); scanf("%d", &difi); linha(); //menu de opções de níveis de dificuldade switch (difi){ case 1: system("cls"); printf("> NÍVEL : Médio\n"); printf("> JOGADOR: %s\n", nome[i]); printf("> PONTOS : %d\n", pts); //imprime o tabuleiro fácil(); linha(); break; case 2: system("cls"); printf("> NÍVEL : Médio\n"); printf("> JOGADOR: %s\n", nome[i]); printf("> PONTOS : %d\n", pts); linha(); //medio(); linha(); break; case 3: system("cls"); printf("> NÍVEL : Difícil\n"); printf("> JOGADOR: %s\n", nome[i]); printf("> PONTOS : %d\n", pts); linha(); //difícil(); linha(); break; default: system("cls"); printf("> Opção inválida!\n"); linha(); } }while(difi > 1 || difi < 3); break; case 2: system("cls"); printf(" > TUTORIAL:\n"); linha(); printf(" # O objetivo do jogo é achar um par de cada carta.\n # Alcançar 800 pontos no nível fácil.\n # Alcançar 3200 pontos no nível médio. \n # Alcançar 5000 pontos no nível difícil.\n\n # Boa sorte! :)\n\n"); system("Pause"); system("cls"); break; case 3: system("cls"); printf("> SAINDO DO PROGRAMA...\n"); exit(0); default: system("cls"); printf("> Opção inválida!\n"); } }while(opcao > 1 || opcao < 3); return 0; }
  6. Olá! depois que eu atualizei para o windows 11 meu pendrive começou a dar uma mensagem "Disco protegido contra gravação", não consigo copiar nada para ele, já fiz de tudo, já formatei pc pensando que era algum tipo de malware, diskpart, regedit, tentei formatar pelo android, usei alguns programas para tentar formatar o pendrive e NADA RESOLVEU!!! acho que é algum problema de hardware no pendrive. Não sei porque esse tipo de "mecanismo de segurança" que inventaram de colocar em pendrive sendo que se você perder você tem acesso aos arquivos do mesmo jeito só não consegue copiar, é inútil essa proteção!!!!! alguém tem outra solução? ou posso jogar o pendrive fora?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!