Ir ao conteúdo
  • Cadastre-se

Não consigo acessar os dados da struct de forma correta


Renanzinthhh

Posts recomendados

Bom, a questão é:

 

Programa 7: construir um programa em C que leia a matrícula e a nota de 10 alunos e armazene em vetores e imprima a matrícula de todos os alunos aprovados, com média igual ou superior a 6.

 

PS: O compilador não apresenta erro nenhum, porém não imprimi o que eu quero.

#include <stdio.h>#include <stdlib.h>	int main()		{			struct dadosAluno{				int matr;				float nota;				};			struct dadosAluno dadosAlunos[3];						int i = 0, matr[3];			float nota[3];						for (i=0; i<3; i++)				{					printf("Matricula do aluno %d: ", i+1);					scanf("%d", &dadosAlunos[i].matr);					printf("Digite a nota do aluno %d: ", i+1);					scanf("%f", &dadosAlunos[i].nota);					printf("\n");				}						for (i=0; i<3; i++)				{					if (nota[i] >= 6.0)						printf("%d", matr[i]);				}		system("pause");		return 0;}
Link para o comentário
Compartilhar em outros sites

@Renanzinthhh

Você misturou um vetor de struct e 2 vetores comuns (matr[3] e nota[3]) quando deveria continuar usando a struct.

 

Seus vetores declarados nas linhas 12 e 13 não servem pra nada, e você não pode utilizá-los.

 

Então, achei isso também estranho, até porque um amigo meu da minha sala disse que tinha que fazer assim, e vi que não foi, rs.

Então...

 

Se eu não declaro elas ali, deixo somente dentro da struct, o compilador informa que não foram declaradas as variaveis nota e matr

#include <stdio.h>#include <stdlib.h>	int main()		{			struct dadosAluno{				int matr;				float nota;				};			struct dadosAluno dadosAlunos[3];						for (i=0; i<3; i++)				{					printf("Matricula do aluno %d: ", i+1);					scanf("%d", &dadosAlunos[i].matr);					printf("Digite a nota do aluno %d: ", i+1);					scanf("%f", &dadosAlunos[i].nota);					printf("\n");				}						for (i=0; i<3; i++)				{					if (nota[i] >= 6.0)						printf("%d", matr[i]);				}		system("pause");		return 0;}
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Usar neste tipo ali na parte da condição, correto?

Ja fiz e não foi!

Aparecia um erro lá, que no qual não posso informá-lo agr,  breve postarei.

 

Estranho, pois aqui deu certo.

#include <stdio.h>#include <stdlib.h> 	int main()		{			struct dadosAluno{				int matr;				float nota;				};			struct dadosAluno dadosAlunos[3];			int i;						for (i=0; i<3; i++)				{					printf("Matricula do aluno %d: ", i+1);					scanf("%d", &dadosAlunos[i].matr);					printf("Digite a nota do aluno %d: ", i+1);					scanf("%f", &dadosAlunos[i].nota);					printf("\n");				}						for (i=0; i<3; i++)				{					if (dadosAlunos[i].nota >= 6.0)					   printf("%d \n", dadosAlunos[i].matr);				}		system("pause");		return 0;}

Você excluiu a declaração da variável 'i' junto daquelas que falei desnecessárias. Isso também causa erro.

Link para o comentário
Compartilhar em outros sites

Estranho, pois aqui deu certo.

#include <stdio.h>#include <stdlib.h> 	int main()		{			struct dadosAluno{				int matr;				float nota;				};			struct dadosAluno dadosAlunos[3];			int i;						for (i=0; i<3; i++)				{					printf("Matricula do aluno %d: ", i+1);					scanf("%d", &dadosAlunos[i].matr);					printf("Digite a nota do aluno %d: ", i+1);					scanf("%f", &dadosAlunos[i].nota);					printf("\n");				}						for (i=0; i<3; i++)				{					if (dadosAlunos[i].nota >= 6.0)					   printf("%d \n", dadosAlunos[i].matr);				}		system("pause");		return 0;}

Você excluiu a declaração da variável 'i' junto daquelas que falei desnecessárias. Isso também causa erro.

 

Ops, exclui por engano. No código a variável está declarada.

Aí com você o programa rodou numa boa e imprimiu na tela o resultado?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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