Ir ao conteúdo

Posts recomendados

Postado

Elabore um programa que solicita e armazena 3 notas de 5 alunos em uma matriz 5 x 3. Por fim, calcula e exibe a média aritmética obtida por cada aluno.

 

eu não estou conseguindo realizar essa questão, alguém pode me ajudar?

 

/*/Elabore um programa que solicita e armazena 3 notas de 5 alunos em uma matriz 5

x 3. Por fim, calcula e exibe a média aritmética obtida por cada aluno./*/

#include<stdio.h>

#include<locale.h>

  int main(){

    setlocale(LC_ALL, "portuguese");

float n1,n2,n3,i, j, m mat[3][5];



for (i=0; i<=2; i++){

    for(j=0; j<=4; i++){

        printf("informe sua %i nota",i++);

        scanf("%i", &[i][j]);

    }

}



return(0);

  }

 

Postado

    #include<stdio.h>
    #include<locale.h>
     
     
     int main( ){
         setlocale(LC_ALL, "portuguese");
         int i, j;
          float notas[3][5], somanotas = 0.0, medianota = 0.0;
         
         for (i=0; i<=4; i++){
             for (j=0; j<=2; j++){
                 printf("Digite a nota do Aluno %d - Nota %d\n", i + 1, j+1);
                 scanf("%f", &notas[i][j]);
                 somanotas= somanotas + notas[i][j];
             }
         medianota = somanotas / 3;
         printf("\n  A Média Aritimetica das notas do Aluno %d é: %.2f\n", i+1, medianota);
             printf("\n");
             somanotas=0.0; 
             medianota=0.0;
        }
        
     return 0;
}

  • Curtir 1
Postado

@jessicardiax Seu código tem alguns erros e alertas, deve ter visto algo assim quando tentou compilar,

 

main.c:9:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’

 

main.c:17:30: warning: format ‘%i’ expects argument of type ‘int’

 

main.c:19:22: error: expected expression before ‘[’

 

Em 30/04/2023 às 14:38, jessicardiax disse:
float n1,n2,n3,i, j, m mat[3][5];

Aí o compilador apontou o erro no m que ficou na frente da matriz. 

 

Em 30/04/2023 às 14:38, jessicardiax disse:
for (i=0; i<=2; i++){

    for(j=0; j<=4; i++){

No loop mais interno devia incrementar j e não i. E normalmente nos contadores os testes são com o tamanho da matriz, p.ex,

 

for(i=0; i<3; i++){
    for(j=0; j<5; j++){

 

Não tem nada errado usar menor ou igual, mas acho mais simples e claro assim e é o mesmo valor que usou na declaração da matriz.

 

E a declaração dos contadores pode ser no próprio for como int e não float como fez junto com as outras, p.ex,

 

for(int i = 0; i < 3; i++){
    for(int j = 0; j < 5; j++){

 

Em 30/04/2023 às 14:38, jessicardiax disse:
printf("informe sua %i nota",i++);

Seu printf está incrementando a variávei i, porém o comando for já faz isso. Isso é o mesmo que incrementar de 2 em 2.

 

Em 30/04/2023 às 14:38, jessicardiax disse:
scanf("%i", &[i][j]);

Aí faltou a variável.

 

  • Curtir 1
  • 11 meses depois...
Postado

Boa Noite!

...

 

MATRIZES

É matriz na leitura, processo e saída.

 

Sinto que existe um complô entre os editores de apontamento ou apostila das escolas  e universidades furrecas, suspeito que combinaram de neutralizar ou inutilizar as matrizes nos exercícios que são das matrizes.

 

Opinião

Alguns alunos não querem usar e ousar nas matrizes a trava, suponho que não tenham consciência ou tenham medo de errar, acabam por pensar além da conta.

 

 

 

O Problema

 

Em 30/04/2023 às 14:38, jessicardiax disse:

Elabore um programa que solicita e armazena 3 notas de 5 alunos em uma matriz 5 x 3. Por fim, calcula e exibe a média aritmética obtida por cada aluno.

 

 

Sem pensar muito, são 5 dados compostos de 3!

É o que me diz, "3 notas de 5 alunos" ou cada aluno no programa é um dado composto de 3 notas, 3 notas é (abstração) um aluno ...

 

Logo,

Em 30/04/2023 às 14:38, jessicardiax disse:
        printf("informe sua %i nota",i++);

Ai Está! 😄  minha opinião é outra!

O contratado é: Informe as notas %i Aluno: * * *

 

Por exemplo, nesse rascunho

 

C'11- gcc'11.4


#include <stdio.h>
#include <ctype.h>

typedef float  Aluno;

int main () {
  /* solicitar a turma de 5 alunos */
  Aluno turma[5] [3]= {0};
  for (size_t a= 0 ; 5>a ; ++a) {
    int r;
    printf ("%s%zu%s%c","Informe as notas ",a+ 1,"º Aluno",'\n');
    for (size_t n= 0 ; 3>n ; ++n) {
      r= getchar ();
      if (EOF==r) {
         perror ("Falha na solicitação");
         a= 5;
         break;
}
      if ('\n'==r) {
        ungetc (r,stdin);
        break;
}
      if ('-'==r || ' '==r) {
        --n;
        continue;
}
    ungetc (r,stdin);
   r=  scanf (" %f",&turma[a][n]);
   if (1!=r) {
     getchar ();
     --n;
}
}
    while (EOF!=(r= getchar()) && '\n'!=r);
    putchar ('\n');
}
  printf ("%c%s%c",'\n',"Turma       Notas",'\n');
  for (size_t a= 0 ; 5>a ; ++a) {
    printf ("%zu%s",a+ 1,"º Aluno: ");
    for (size_t n= 0 ; 3>n ; ++n) {
       printf ("%.1f ",turma[a][n]);
}
    putchar ('\n');
}
  /* ... */
}

image.png.24b5a9ca8844a770bd59d9b1d939a231.pngSendo uma solicitação e não uma leitura, os escaneamentos terminam sempre na nova linha, de modo que cada linha é um aluno (para mim).

 

A proposito, se fosse uma leitura, o programa ficaria preso até pegar  turma.

 

RASCUNHE UMA SOLUÇÃO SEM PENSAR MUITO!

 

Porque pensam d+ 😄 

 

 

 

 

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