Ir ao conteúdo
  • Cadastre-se

eyjafjallajokull_

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Reputação

7
  1. Ahhhh.... Entendi! Agora faz sentido rs obrigado!
  2. @devair1010 Eu consegui fazer de uma outra maneira sem usar o flag (pois sou iniciante e não sei o que ele faz exatamente); eu não tinha colocado na função lista_reprovados a média e isso poderia estar dando erro! E sobre o nome[MAX] você estava certo, por isso não mostrava o nome todo, o sexo não precisava colocar [3], e outro erro era no nMaior e nMenor que também estavam com o [MAX] invés de um número mais alto! Obrigado e vou deixar aqui o código para futuras dúvidas que possam surgir! #include <stdio.h> #include <string.h> #define MAX 3 struct vetor { char nome[50], sexo, n_matricula [9]; int ano_nasc; float nota1, nota2, nota3, nota4; }; void leitura_alunos (struct vetor CAD[MAX]) { int i; char nMaior[50], nMenor[50]; float media, Mmenor=300, Mmaior=0; for (i=0;i<MAX;i++) { printf ("Insira o numero da matricula: "); fflush (stdin); gets (CAD[i].n_matricula); printf ("Digite o nome do aluno: "); fflush (stdin); gets (CAD[i].nome); printf ("Digite o sexo, 'M' para masc. e 'F' para fem.: "); scanf ("%c", &CAD[i].sexo); printf ("Digite o ano de nascimento: "); scanf ("%d", &CAD[i].ano_nasc); printf ("Insira aqui a nota da primeira prova: "); scanf ("%f", &CAD[i].nota1); printf ("Insira aqui a nota da segunda prova: "); scanf ("%f", &CAD[i].nota2); printf ("Insira aqui a nota da terceira prova: "); scanf ("%f", &CAD[i].nota3); printf ("Insira aqui a nota da quarta prova: "); scanf ("%f", &CAD[i].nota4); media = (CAD[i].nota1 + CAD[i].nota2 + CAD[i].nota3 + CAD[i].nota4)/4; printf ("Media = %.2f\n", media); if (media>=5) printf ("APROVADO!\n"); else printf ("REPROVADO!\n"); printf ("\n"); if (media>Mmaior) { Mmaior=media; strcpy (nMaior,CAD[i].nome); } else if (media<Mmenor) { Mmenor=media; strcpy (nMenor,CAD[i].nome); } } printf ("A maior media foi do(a) %s: %.2f\nA menor media foi do(a) %s: %.2f\n\n", nMaior, Mmaior, nMenor, Mmenor); } void lista_reprovados (struct vetor CAD[MAX]) { int i; float media; printf ("ALUNOS REPROVADOS:\n\n"); for (i=0;i<MAX;i++) { media = (CAD[i].nota1 + CAD[i].nota2 + CAD[i].nota3 + CAD[i].nota4)/4; if (media<5) printf ("%s\n", CAD[i].nome); } } main () { struct vetor CAD[MAX]; int i; leitura_alunos (CAD); lista_reprovados (CAD); }
  3. Eu fiz seu código da minha maneira (fiz quase igual sem alterar muito) e troquei os cont para float; #include <stdio.h> main () { int i, n, soma=0; float contNeg, contZero; printf ("SOMA POSITIVOS E CONTA NEGATIVOS\n\n"); for (i=0;i<10;i++) { printf ("Digite %do numero: ", i+1); scanf ("%d", &n); if (n>0) soma = soma + n; else if (n<0) contNeg++; else contZero++; } printf ("\n\nTotal da soma = %d\n", soma); printf ("Numero de negativos = %g\n", contNeg); printf ("O zero foi digitado %g vezes\n", contZero); }
  4. EXERCICIO) Usar as informações(nome, sexo, matricula, 4 notas, ano de nascimento) (que já estão no programa) para: ler e armazenar as informações para os todos alunos; calcular a média das notas das provas de cada aluno; mostrar o nome dos alunos reprovados (para ser aprovado o aluno necessita de média igual ou maior que 5.0); mostrar os nomes dos alunos com a maior e menor média. É em C, não sei o que está errado na hora de ler os nomes e na lista de reprovados #include <stdio.h> #include <string.h> #define MAX 3 struct vetor { char nome[MAX], sexo, n_matricula [9]; int ano_nasc; float nota1, nota2, nota3, nota4; }; void leitura_alunos (struct vetor CAD[MAX]) { int i; char nMaior[MAX], nMenor[MAX]; float media, Mmenor=300, Mmaior=0; for (i=0;i<MAX;i++) { printf ("Insira o numero da matricula: "); fflush (stdin); gets (CAD[i].n_matricula); printf ("Digite o nome do aluno: "); fflush (stdin); gets (CAD[i].nome); printf ("Digite o sexo, 'M' para masc. e 'F' para fem.: "); scanf ("%c", &CAD[i].sexo); printf ("Digite o ano de nascimento: "); scanf ("%d", &CAD[i].ano_nasc); printf ("Insira aqui a nota da primeira prova: "); scanf ("%f", &CAD[i].nota1); printf ("Insira aqui a nota da segunda prova: "); scanf ("%f", &CAD[i].nota2); printf ("Insira aqui a nota da terceira prova: "); scanf ("%f", &CAD[i].nota3); printf ("Insira aqui a nota da quarta prova: "); scanf ("%f", &CAD[i].nota4); media = (CAD[i].nota1 + CAD[i].nota2 + CAD[i].nota3 + CAD[i].nota4)/4; printf ("Media = %.2f\n", media); if (media>=5) printf ("APROVADO!\n"); else printf ("REPROVADO!\n"); printf ("\n"); if (media>Mmaior) { Mmaior=media; strcpy (nMaior,CAD[i].nome); } else if (media<Mmenor) { Mmenor=media; strcpy (nMenor,CAD[i].nome); } } printf ("Aluno com a maior media = %s\nAluno com a menor media = %s\n\n", nMaior, nMenor); } void lista_reprovados (struct vetor CAD[MAX]) { int i; float media; printf ("ALUNOS REPROVADOS:\n\n"); for (i=0;i<MAX;i++) { if (media<5) printf ("%s\n", CAD[i].nome); else printf ("Nenhum aluno foi reprovado!"); } } main () { struct vetor CAD[MAX]; int i; leitura_alunos (CAD); lista_reprovados (CAD); }
  5. ja resolvi! obg Caso alguém tenha a mesma duvida o problema estava no inicializador do for que precisa se 0 #include <stdio.h> #define linha 3 #define coluna 3 main () { int M, N, soma, matriz[linha][coluna], maior, menor, media; printf ("Digite aqui uma matriz 3x3: \n"); for (M=0;M<linha;M++) { for (N=0;N<coluna;N++) scanf ("%d", &matriz[M][N]); } printf ("MATRIZ\n"); for (M=0;M<linha;M++) { for (N=0;N<coluna;N++) printf ("%d", matriz[M][N]); printf ("\n"); } maior=matriz[0][0]; for (M=0;M<linha;M++) { for (N=0;N<coluna;N++) { if (matriz[M][N]>maior) maior=matriz[M][N]; } } menor=matriz[2][2]; for (M=0;M<linha;M++) { for (N=0;N<coluna;N++) { if (matriz[M][N]<menor) menor=matriz[M][N]; } } soma=0; for (M=0;M<linha;M++) { for (N=0;N<coluna;N++) soma=soma+matriz[M][N]; } media=soma/9; printf ("O maior numero da matriz é %d\nO menor numero da matriz é %d\nA media da matriz é %d", maior, menor, media); }
  6. Olá estou com um problema em um código e gostaria de saber se alguém aqui é um expert em matriz para me ajudar hahah EXERCICIO) Fazer um programa em Ambiente C que leia uma matriz MxN (no máximo com 10 linhas e 10 colunas) e imprima o maior valor, o menor valor e o valor médio encontrados na matriz. CÓDIGO FEITO ATÉ O MOMENTO) #include <stdio.h> #define linha 3 #define coluna 3 main () { int M, N, soma, matriz[linha][coluna], maior, menor, media; printf ("Digite aqui uma matriz 3x3: \n"); for (M=1;M<=linha;M++) { for (N=1;N<coluna;N++) scanf ("%d", matriz[M][N]); } printf ("MATRIZ\n"); for (M=1;M<=linha;M++) { for (N=1;N<=coluna;N++) printf ("%d", matriz[M][N]); printf ("\n"); } maior=matriz[1][1]; for (M=1;M<=linha;M++) { for (N=1;N<=coluna;N++) { if (matriz[M][N]>maior) maior=matriz[M][N]; } } menor=matriz[3][3]; for (M=1;M<=linha;M++) { for (N=1;N<=coluna;N++) { if (matriz[M][N]<menor) menor=matriz[M][N]; } } soma=0; for (M=1;M<=linha;M++) { for (N=1;N<=coluna;N++) soma=soma+matriz[M][N]; } media=soma/9; printf ("O maior numero da matriz é %d\nO menor numero da matriz é %d\nA media da matriz é %d", maior, menor, media); } AGRADEÇO DESDE JÁ QUEM PUDER ME AJUDAR!
  7. @devair1010 Poxa, nem tinha percebido essas falhas! Muito obrigado!
  8. Olá, eu faço faculdade relacionada a programação e estou perdido em um exercicio que não consigo achar o erro do meu programa nele, da erro na parte de colocar um operação e no resultado final. Abaixo esta o que o ex. pede e minha resolução (é em C) EXERCICIO: Faça um algoritmo que, dados dois vetores inteiros A e B de 20 elementos, efetue as respectivas operações indicadas por um outro vetor C de 20 elementos de caracteres, também fornecido pelo usuário, contendo as quatro operações aritméticas em qualquer combinação e armazenando os resultados em um quarto vetor D. Por exemplo, suponha que A[1] = 10, B[1] = 3 e C[1] = '*', então D[1] = 30. RESOLUÇÃO: #include <stdio.h> #include <string.h> #define MAX 20 main () { int A[MAX],B[MAX],D[MAX],i; char op [MAX]; printf ("VETOR A:\n"); for (i=0;i<MAX;i++) { printf ("Insira um valor: "); scanf ("%d", &A); } printf ("VETOR B:\n"); for (i=0;i<MAX;i++) { printf ("Insira um valor: "); scanf ("%d", &B); } printf ("OPERACAO:\n"); for (i=0;i<MAX;i++) { printf ("Insira uma operacao:\n"); //Exemplo +,-,*,/ gets (op); switch (op ) { case '+': D=A+B; break; case '-': D=A-B; break; case '*': D=A*B; break; case '/': if (B!=0) D=A/B; else printf ("ERRO\n"); break; } printf ("%d %c %d = %g", A,op,B,D); } } Agradeço desde ja quem puder me ajudar, obrigado!!

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!