Ir ao conteúdo

Array para notas


Ruka284

Posts recomendados

Postado

Estou a fazer um programa, mas so posso utilizar um array para 4 alunos e 2 notas.

Esta-me a dar um erro, podem-me ajudar s.f.f.


#include <stdio.h>
#include <conio.h>


main ()
{

float nota[4][2],media[20],mt;
int notas,i,j,aluno;
char nome [5][15];
mt=0;// média da turma tem de se inicializar a 0



for(i=0;i<=3;i++)
{
printf("Qual o nome do aluno \n",i+1);
scanf("%s",&nome[i]);
}
for(i=0;i<=3;i++)
for(j=0;j<=1;j++)
printf("Nota do aluno e %d \n",i+1);
scanf("%f",&nota[i][j]);

for(i=0;i<=3;i++)
{
for(j=0;j<=1;j++)
printf("Nota do aluno e %d \n",i+1);
scanf("%f",&nota[j]);
media[i]=nota[i]+nota[j]/2;
mt=mt*media[i]; // média da turma



}

mt=mt/4;
for(i=0;i<=3;i++)
printf("media do aluno %d %.1f\n",i+1,media[i]);
printf("media da turma e %d %.1f\n",mt);






getchar();

}




  • 2 semanas depois...
Postado

Você tava errando ao calcular a media, pois não estava usando uma posição da matriz.

Veja as correções no código:


#include <stdio.h>
#include <conio.h>

int main (){

//suponho que com a matriz nota[4][2] você queira inserir duas notas para 4 alunos, vou adotar 4 alunos
float nota[4][2];
float media[4];//aqui vou adotar 4 alunos tambem
float mediaturma=0;//use palavras, pois fica mais compreensivel
int notas,i,j,aluno;

char nome [4][15];//vou usar 4 nomes
char nomeatual[15];//um nome com no maximo 15 caracteres
mediaturma=0;// média da turma tem de se inicializar a 0


//insere o nome de 4 alunos, veja que todo vetor começa na posição 0
for(i=0;i<4;i++){
printf("Qual o nome do aluno %d \n",i+1);
scanf("%s",&nomeatual);

//passa o nome do aluno para a matriz nome
for(j=0;j<15;j++){
nome[i][j] = nomeatual[j];//passa cada caracter do vetor nome atual para a matriz
}

//você pode inserir as notas aqui mesmo
for(j=0;j<2;j++){
printf("Digite a %d nota do(a) %s: \n",j+1,nomeatual);
scanf("%f",&nota[i][j]);
}

printf("\n");//pula uma linha
}

//percorre a matriz notas para calcular a media da turma
for(i=0;i<4;i++){
for(j=0;j<1;j++){//percorrr este laço somente uma vez a cada ciclo

media[i]=(nota[i][j] + nota[i][j+1])/2;//calcula a media de cada aluno
}
mediaturma=mediaturma + media[i]; // soma todas as medias dos alunos
}

mediaturma = mediaturma/4;

printf("\n");//pula uma linha

//aqui uso o mesmo for que calcula a media do aluno
for(i=0;i<4;i++){
for(j=0;j<1;j++){
media[i]=(nota[i][j] + nota[i][j+1])/2;//calcula a media de cada aluno
}
//passa o nome do aluno da matriz nome para nomeatual
for(j=0;j<15;j++){
nomeatual[j]=nome[i][j];//passa cada caracter da linha da matriz para o vetor nomeatual
}
printf("O %s tem a media %.2f\n",nomeatual,media[i]);
}
printf("\nMedia da turma é %.2f\n",mediaturma);

getchar();

}

Espero que ajude

Arquivado

Este tópico foi arquivado e está fechado para 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!