Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Roberto Silva Santos

[Resolvido] Vetor

Recommended Posts

Amigos me ajuda com esse algoritmo qu esta dando muitos erros

veja o codigo

/*Armazenar em vetores: nomes e notas pr1 e pr2 de 6 alunos.Calcular a media de 
cada aluno e imprimir aprovado se a media for maior que 5 e reprovado se a media 
for menor ou igual a 5.
obs: 2 vetores para as notas tipo float;
1 vetor para os nomes;
1 vetor para a media;
1 vetor para a situaçao.
*/
#include<stdio.h>
main()
{
	  char nome[50];
	  float nota1[1],nota2[1];
	  float media;
	  int i;
	  printf("\nDigite o nome:\n");// ele esta recebendo os seis nomes tudo primeiro
	  for(i=0;i<6;i++){
	  gets(nome);}
	  for(i=0;i<6;i++){
	  printf("\nNomes:%s\n",nome);}//ai aki depois ele mostra todos os nomes 
	  printf("\nDigite a nota1\n");//e só passa uma vez pra receber nota 1 depois a nota 2
	  for(i=0;i<1;i++){
	  scanf("%f",&nota1[i]);}
	  printf("\nDigite nota2\n");
	  for(i=0;i<1;i++){
	  scanf("%f",& nota2[i]);}
	  media=(nota1[i]+nota2[i])/2; //e o calculo da media esta dando erra 
	  if (media>5)
	  printf("\nAprovado por media:%f",media);
	  else
	  printf("\nReprovado:%f",media);
	  fflush(stdin);
	  getchar();}

Bom a finalidade do algoritmo é receber seis nomes e cada nome com suas notas no caso nota1 e nota2 ai apresentar cada nome com suas respectivas media e condições se esta aprovado ou reprovado como no enuciado,

Grato por quem puder me ajudar ou que tem um exemplo mais pratico

Compartilhar este post


Link para o post
Compartilhar em outros sites

O exercício pede para armazenar os dados em vetores.

Então vamos começar pela definindo as variáveis:

 

obs: 2 vetores para as notas tipo float;

1 vetor para os nomes;

1 vetor para a media;

1 vetor para a situaçao.

para 6 alunos teremos:

 

char nome[6][50];
float nota1[6], nota2[6], media[6];

Se quiser criar o de situação fique a vontade.

Eu acho desnecessário.

 

Agora voce precisa de um loop para ler os dados dos 6 alunos:

Algo do tipo:

 

para i de 0 até 5 faça

   leia(nome[i])
   leia(nota1[i])
   leia(nota2[i])
   media[i] = (nota1[i] + nota2[i]) / 2
fimpara

Voce precisa de mais um loop que mostra o nome do aluno a media e a situação.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja

#include<stdio.h>
main()
{
char nome[6][50];
float nota1[6], nota2[6], media[6];
	  int i;
	  for(i=0;i<5;i++)
	  printf("\nDigite o nome:\n");
	  {
	  gets(nome);
	  }
	  for(i=0;i<5;i++)
	  printf("\nDigite a nota1\n");
	  {
	  scanf("%f",&nota1[i]);
	  } 
		for(i=0;i<5;i++)
	  printf("\nDigite nota2\n");
		 {
	  scanf("%f",& nota2[i]);
	  }
	  media=(nota1[i]+ nota2[i])/2; 
	  if (media>5)
	  printf("\nAprovado por media:%f",media);
	  else
	  printf("\nReprovado:%f",media);
	  fflush(stdin);
	  getchar();}

Esta dando erro na linha do gets(nome); "cannot convert `char (*)[50]' to `char*' for argument `1' to `char* gets(char*)' "

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce está lendo o nome dos 6 alunos, depois as 6 primeiras notas e depois as 6 últimas notas.

Que tal ler em sequencia:

- 1 aluno

- nota 1

- nota 2

 

for (i=0; i<6; i++){

   gets (nome[i]) // veja como se le uma string em um array bidimensional
   scanf("%f",& nota1[i]);
   scanf("%f",& nota2[i]);
   media[i] = (nota1[i] + nota2[i]) / 2.0
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kandrade acho que agora esta funfando beleza, resolveu o problema

#include<stdio.h>
main()
{
char nome[6][50];
float nota1[6], nota2[6], media[6];
	  int i;
 for (i=0; i<6; i++){
 printf("\nDigite o nome:\n");
	gets (nome[i]);
   printf("\nNota1:\n");
	  scanf("%f",  &nota1[i]);
	  getchar();
   printf("\nNota2\n");
	 scanf("%f",& nota2[i]);
	 getchar();
   media[i] = (nota1[i] + nota2[i]) / 2.0;}
	  for (i=0; i<6; i++){
	  if (media[i]>5)
	  printf("\n%s Aprovado media: %.2f\n",nome[i],media[i]);
	  else
	  printf("\n%s Reprovado media: %.2f\n",nome[i],media[i]);}
	  fflush(stdin);
	  getchar();}

valeu maninho http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.