Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida sobre questão relacionada a Struct (Linguagem C)


Felippe Melo

Pergunta

Olá, estou com uma dúvida nesta questão que necessita da utilização de struct. A minha dúvida é como juntar as duas estruturas e compara-las para que seja imprimido o nome e sobrenome junto com a nota. Outra dúvida é o meu ciclo for que não é inicializado.

Escreva um programa que preencha, a partir do teclado, duas estruturas distintas do tipo vetor com os nomes e as notas (as notas têm de estar contidas no intervalo 0 ≤ nota ≤ 10) dos alunos, respectivamente, de uma turma de 100 alunos. Após, exteriorize somente os nomes dos alunos que obtiveram notas iguais ou maiores que 5 (cinco).

 

O meu código ficou assim:

#include <stdio.h>

struct nome {
	char nome;
	char sobrenome;
};
struct nota{
	int nota;
};


int main(void){
	int i,j,h;
	
struct nome aluno[2];
struct nota boletim[2];

for (i = 0; i < 2; ++i){
	printf("Digite o nome do Aluno\n");
	scanf("%s%s", &aluno[i].nome, &aluno[i].sobrenome);
	printf("Digite a nota do Aluno\n");
	scanf("%i", &boletim[i].nota);
}
for (i = 0; i < 2; ++i){
	if (boletim[i].nota >= 2){
	printf("O Aluno %s %s tem foi aprovado com nota %i", aluno[i].nome, aluno[i].sobrenome, boletim[i].nota);
		}
}
	system("pause");
	return 0;
}

 

Editado por Felippe Melo
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

 Na Struct é preciso informar o tamanho do vetor "nome [x]", e com fgets, gets ou scanf ( "%[^\n]" é possível ler os espaços até o enter, evitando a necessidade de outro vetor.

Da uma olhada no código abaixo, só fiz alguns ajustes. 🤙

 

#include <stdio.h>
#include <stdlib.h>

void linha (void)

{

printf ("\n");

};

struct nome
{
char nomecompleto [40];
};

struct boletim{
int nota;
};


int main ()

{

int i, quantidade;

printf ("Quantidade de alunos: ");
scanf ("%d", &quantidade);

__fpurge(stdin);

struct nome aluno [quantidade];
struct boletim notas [quantidade];

for (i = 0; i < quantidade; ++i)

{

	printf("Digite o nome completo do Aluno: ");
    scanf ( "%[^\n]", aluno[i].nomecompleto);

    __fpurge(stdin);

    printf("Digite a nota do Aluno %s: ", aluno[i].nomecompleto);
	scanf ("%d", &notas[i].nota);

	__fpurge(stdin);

	linha();

}

for (i = 0; i < quantidade; ++i)

{

	if (notas[i].nota >= 5)

	{

	printf ("O Aluno %s foi aprovado com nota %d", aluno[i].nomecompleto, notas[i].nota);
	linha ();

    }

}
	return EXIT_SUCCESS;

}

 

Editado por Aristóteles
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...