#include<stdio.h>#include<stdlib.h>
calcmed(float calcmede[4],int m){int c2;float media;for(c2=0;c2<m;c2++){
media+=calcmede[c2];}return media/m;}
main(){int nmal,l,c,c1,turmas;
printf("Digite a quantidade de turmas: ");
scanf("%d",&turmas);
printf("Digite a quantidade de alunos: ");
scanf("%d",&nmal);float nota[nmal][1][turmas],notas[4];char nome[nmal][100][turmas];
setbuf(stdin,NULL);//limpa teclado//começa a pegar dadosfor(c1=0;c1<turmas;c1++){for(l=0;l<nmal;l++){
printf("Digite o %d.o nome: ", l+1);
gets(nome);for(c=1;c<=4;c++){
printf("Digite a %d.o nota do aluno %s: ", c,nome[l][100][c1]);
scanf("%f",¬as[c]);
calcmed(notas,4);}
system("cls");
setbuf(stdin,NULL);}}//fim pega dados
printf("==================================================\n");
printf(" M\202DIA DOS ALUNOS:\n");
printf("==================================================\n");for(c1=0;c1<turmas;c1++){for(l=0;l<nmal;l++){
printf("Nome: %s Nota: %.f\n", nome[l][100][c1],nota[l][0][c1]);//resultado}}}
Olá, será que poderia me ajudar a resolver esse problema com a função gets e uma matriz multidimencional? Não estou conseguindo pegar o nome do aluno no terceiro for, depois do printf("Digite o %d.o nome: ", l+1);, ele não está pulando o programa, aparece uma janela imprimindo parou de funcionar, sem problemas com estouro de dados. Modos que testei: gets(nome[][100][c1]); gets(nome[l][100][c1]); scanf("%d", &nome[][100][c1]); scanf("%d", &nome[l][100][c1]); scanf("%c", &nome[l][100][c1]);
No caso, essa forma de pensar está errada e até minha sintaxe, eu procrurei no site cprogressive("mencionou que matrizes passadas para funções primeiro conchete é vazio") falei com a professora e nada. A função gets pode estar obsoleta, mas é a que está na apostila futuramente ou aos poucos vou atualizando o conhecimento.Eu estou tentando colocar o nome na matriz multidimencional, na linha 1(ou 0) o nome, na coluna a "cadeia de caracter" 1(ou 0) e na profundidade a turma 1(ou 0). Talvez você recomende ponteiros(como ela citou mas vagamente), vou aprender nas proximas aulas.
Editado por Felipy Camargo escrevi errado ("falta de atenção e ansiedade")
Pergunta
Felipy Camargo
Olá, será que poderia me ajudar a resolver esse problema com a função gets e uma matriz multidimencional?
Editado por Felipy CamargoNão estou conseguindo pegar o nome do aluno no terceiro for, depois do printf("Digite o %d.o nome: ", l+1);, ele não está pulando o programa, aparece uma janela imprimindo parou de funcionar, sem problemas com estouro de dados. Modos que testei:
gets(nome[][100][c1]);
gets(nome[l][100][c1]);
scanf("%d", &nome[][100][c1]);
scanf("%d", &nome[l][100][c1]);
scanf("%c", &nome[l][100][c1]);
No caso, essa forma de pensar está errada e até minha sintaxe, eu procrurei no site cprogressive("mencionou que matrizes passadas para funções primeiro conchete é vazio") falei com a professora e nada. A função gets pode estar obsoleta, mas é a que está na apostila futuramente ou aos poucos vou atualizando o conhecimento. Eu estou tentando colocar o nome na matriz multidimencional, na linha 1(ou 0) o nome, na coluna a "cadeia de caracter" 1(ou 0) e na profundidade a turma 1(ou 0).
Talvez você recomende ponteiros(como ela citou mas vagamente), vou aprender nas proximas aulas.
escrevi errado ("falta de atenção e ansiedade")
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.