Ir ao conteúdo

Posts recomendados

Postado

Leia o cadastro de 5 alunos que contenha as informações: nome, idade, turma, valor de quatro notas (utilize um vetor para armazenar as notas) e a média do aluno (média baseada no valor das quatro notas.

 a. Defina um registro/struct para armazenar as informações sobre o aluno.

b. Obtenha as informações sobre os alunos através de entradas fornecidas pelo usuário.

c. Calcule a média de cada um aluno com base no vetor com as quatro notas.

d. Escreva os dados dos alunos “aprovados” (média >= 7.0).

e. Escreva os dados dos alunos em “exame” (3.0 <= média < 7.0).

f. Escreva os dados dos alunos “reprovados” (média < 3.0).

 

Como faço para calcular essa media(No meu código)?

#include<stdio.h>

typedef struct aluno{
	char nome[30];
	char idade[3];
	char turma[10];
	int notas[4];
}informações;

main(){
	
	informações Aluno[5];
	float media [5];
	int i,k,t,j=0;
	
	for(i=0;i<5;i++){
		
		printf("Insira o nome do aluno:");
		scanf("%[^\n]", Aluno[i].nome);
		
		printf("\n Insira a idade do aluno:");
		scanf("%d", &Aluno[i].idade);
		
		printf("\n Insira a turma do aluno:");
		scanf("%f", &Aluno[i].turma);
		
		for(k=0;k<4;k++){
			j++;
			printf("\n Insira a nota %d:", j);
			scanf("%f", &Aluno[i].notas[k]);
			
		setbuf(stdin, NULL);
		getchar();
		}
		
		setbuf(stdin, NULL);
		getchar();
	}

}

 

Postado
26 minutos atrás, Helio Junnior Sartor Dalmolin disse:

Como faço para calcular essa media(No meu código)?

Esse seu algorítimo funciona?

 

27 minutos atrás, Helio Junnior Sartor Dalmolin disse:

c. Calcule a média de cada um aluno com base no vetor com as quatro notas.

Pelo o que eu aprendi na 3° serie, você soma todas as notas e divide pela quantidade de notas.

https://mundoeducacao.uol.com.br/matematica/media-aritmetica.htm

Em C seria assim

	media = (aluno[0].nota[0]+aluno[0].nota[1]+aluno[0].nota[2]+aluno[0].nota[3])/4;

Mas é claro que seria melhor fazer isso com um laço for por exemplo.

Postado
44 minutos atrás, kgin disse:

Esse seu algorítimo funciona?

 

Pelo o que eu aprendi na 3° serie, você soma todas as notas e divide pela quantidade de notas.

https://mundoeducacao.uol.com.br/matematica/media-aritmetica.htm

Em C seria assim


	media = (aluno[0].nota[0]+aluno[0].nota[1]+aluno[0].nota[2]+aluno[0].nota[3])/4;

Mas é claro que seria melhor fazer isso com um laço for por exemplo.

Vi agora meu código não esta funcionando mesmo.

	informações Aluno[5];
	float media [5];
	int i,k,t,j=0;
	
	for(i=0;i<5;i++){
		
		printf("Insira o nome do aluno:");
		scanf("%[^\n]", Aluno[i].nome);
		
		printf("\n Insira a idade do aluno:");
		scanf("%d", &Aluno[i].idade);
		
		printf("\n Insira a turma do aluno:");
		scanf("%f", &Aluno[i].turma);
		
		for(k=0;k<4;k++){
			j++;
			printf("\n Insira a nota %d:", j);
			scanf("%f", &Aluno[i].notas[k]);
		}
		
	}

}

fiz ele assim e deu erro nos for ai fica assim quando executo:

737375702_2021-06-16(1).thumb.png.d17d6c23ebfb185d63d0c59a9e0cfaa7.png

Como posso arrumar isso?

Postado
14 minutos atrás, Helio Junnior Sartor Dalmolin disse:

Como posso arrumar isso?

O primeiro passo é desistir do DevC++, recomendo usar o codeblocks ou esse site aqui https://replit.com/

 

Em C quando você pede alguma entrada para o scanf ele deixa a tecla enter (carryReturn) no buffer do teclado, para resolver temporariamente isso você pode colocar o caractere de controle para ignorar o enter.

	scanf("%d%*c");

Com isso ele só vai pegar o numero decimal (com o %d) e descartar a próxima tecla (com o %*c).

 

para pegar strings você tem que usar fgets()

 

Exemplo de como pegar a entrada do teclado

#include <stdio.h>
#include <string.h>

#define T_NOME 60
#define T_TURMA 5
#define Q_NOTAS 4
#define Q_ALUNOS 5

struct informacao_aluno
{
    char nome[T_NOME];
    int idade;
    char turma[T_TURMA];
    float notas[Q_NOTAS];
};

int main(void)
{
    int contador1, contador2;
    struct informacao_aluno alunos[Q_ALUNOS];
    /* Pega as informações dos alunos */
    for (contador1 = 0; contador1 < Q_ALUNOS; contador1++) {
        puts("Digite o nome do aluno");
        fgets(alunos[contador1].nome, T_NOME, stdin);

        puts("Digite a idade do aluno");
        scanf("%d%*c", &alunos[contador1].idade);

        puts("Digite a turma do aluno");
        fgets(alunos[contador1].turma, T_TURMA, stdin);

        printf("Digite as %d notas do aluno\n", Q_NOTAS);
        for (contador2 = 0; contador2 < Q_NOTAS; contador2++) {
            printf("Nota[%d]:", contador2+1);
            scanf("%f%*c", &alunos[contador1].notas[contador2]);
        }
    }

    /* Mostra as informações de cada aluno */
    for (contador1 = 0; contador1 < Q_ALUNOS; contador1++) {
        printf("Nome:%s", alunos[contador1].nome);
        printf("Idade:%d\n", alunos[contador1].idade);
        printf("Turma:%s", alunos[contador1].turma);
        for (contador2 = 0; contador2 < Q_NOTAS; contador2++) {
            printf("Nota[%d]:%.2f\n", contador2+1, alunos[contador1].notas[contador2]);
        }
        putchar('\n');      /* Salta uma linha */
    }
    
    getchar();
    return(0);
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!