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

Programação C


gomes_luis1990

Pergunta

3) pretende-se apurar numa data de 10 alunos (introduzida pelo utilizador), cujos nome e idade (todas diferentes) são representadas pelos vectores (arrays) Nome e Idade, respectivamente, a média das idades e o nome do aluno mais velho. Construa um programa que apure o pretendido.

Exemplo:

Introduza o nome do aluno1: aaa

Introduza a idade do aluno: 19

Introduza o nome do aluno2: bbb

Introduza a idade do aluno: 20

(...)

Introduza o nome do aluno10: iii

Introduza a idade do aluno: 22

A média das idades é: xxx anos

O nome do aluno mais velho é: 22

Este foi o programa que fiz:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int cont, idade[10], max, y;
float x;
char a[10], b[10], c[10], d[10], e[10], f[10], g[10], h[10], i[10], j[10];
    {
      printf("introduza o nome do aluno1:");
      scanf("%s",a);
      printf("introduza a idade do aluno1:");
      scanf("%d",&idade[0]);
      printf("introduza o nome do aluno2:");
      scanf("%s",B);
      printf("introduza a idade do aluno2:");
      scanf("%d",&idade[1]);
      printf("introduza o nome do aluno3:");
      scanf("%s",c);
      printf("introduza a idade do aluno3:");
      scanf("%d",&idade[2]);               
      printf("introduza o nome do aluno4:");
      scanf("%s",d);
      printf("introduza a idade do aluno4:");
      scanf("%d",&idade[3]);
      printf("introduza o nome do aluno5:");
      scanf("%s",e);
      printf("introduza a idade do aluno5:");
      scanf("%d",&idade[4]);
      printf("introduza o nome do aluno6:");
      scanf("%s",f);
      printf("introduza a idade do aluno6:");
      scanf("%d",&idade[5]);
      printf("introduza o nome do aluno7:");
      scanf("%s",g);
      printf("introduza a idade do aluno7:");
      scanf("%d",&idade[6]);
      printf("introduza o nome do aluno8:");
      scanf("%s",h);
      printf("introduza a idade do aluno8:");
      scanf("%d",&idade[7]);
      printf("introduza o nome do aluno9:");
      scanf("%s",i);
      printf("introduza a idade do aluno9:");
      scanf("%d",&idade[8]);
      printf("introduza o nome do aluno10:");
      scanf("%s",j);
      printf("introduza a idade do aluno10:");
      scanf("%d",&idade[9]);
}
    x=(idade[0]+idade[1]+idade[2]+idade[3]+idade[4]+idade[5]+idade[6]+idade[7]+idade[8]+idade[9])/10;
    printf("a media das idades e %d:",&x);
    
     max = idade[0];     
     for(y=1; y<10; y++)
     {
              
        if(idade[y] > max) max = idade[y];
        else max=idade[0];
      }
      if(max=idade[0])
      printf("o aluno mais velho:%s",a);
      if(max=idade[1])
      printf("o aluno mais velho:%s",B);
      if(max=idade[2])
      printf("o aluno mais velho:%s",c);
      if(max=idade[3])
      printf("o aluno mais velho:%s",d);
      if(max=idade[4])
      printf("o aluno mais velho:%s",e);
      if(max=idade[5])
      printf("o aluno mais velho:%s",f);
      if(max=idade[6])
      printf("o aluno mais velho:%s",g);
      if(max=idade[7])
      printf("o aluno mais velho:%s",h);
      if(max=idade[8])
      printf("o aluno mais velho:%s",i);
      if(max=idade[9])
      printf("o aluno mais velho:%s",j);
      
system("pause");
return 0;
}

Mas no final o programa não me faz a média final e não me diz o aluno mais velho sera que alguém que percebe um pouco mais de linguagem c pode alterar o meu programa para funcionar corectamente?

Agradecia que se me ajudarem que colocassem o programa já alterado a funcionar, porque com explicaçoes que me tentaram ajudar não percebi.

Obrigado preciso com urgencia... :wacko:

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Há um jeito melhor de fazer o que você deseja. Isto é, fazer um array abrigando todos os alunos, ao invés de usar variáveis separadas.

Assim:

int idade[10]; /* alunos vão de 1 a 10 */
char nomes[10][64]; /* alunos vão de 1 a 10, podendo colocar até 64 caracteres no nome */
Depois você pode usar um loop para ler:
for(int i = 0; i < 10; ++i) {
    printf("Aluno %d\n", i);

    printf("Nome: ");
    gets(nomes[i]);

    printf("Idade: ");
    scanf("%d", &(idade[i]));
    printf("\n");
}

Para calcular a média, some todas as idades, e depois divida por 10.

Para ver o aluno mais velho, percorra o array em um loop. Se a idade atual for maior que a registrada, registre a nova e guarde o índice do aluno. Depois leia a idade e o nome, tendo o índice.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

Tambem estou a neste trabalho, e tentei esta abordagem mas não estou a conseguir, definitivamente a malta aqui tem conhecimentos muito mais avançados do que nós, infelizmente é só este semestre que temos programação pois a malta de Engenharia nunca mais toca em C ou C++ ( o que é uma pena pois parece-me que seria o começo de uma linha de aprendizagem muita fixe ! )

Link para o comentário
Compartilhar em outros sites

  • 0

(Sem querer fazer bump)

O que consegui compilar até agora foi isto, a parte inicial segue um raciocinio aqui postado o resto foi no seguimento.

A data de entrega já venceu assim podemos estar à vontade quanto à compilação toda ( e a Prof conhece o forum , he he he)

infelizmente tenho exame de quimica amanha e gostava de ver esta compilação a funcionar em toda a sua gloria lol

//grupo ??; Exercício ?

#include<stdio.h>
int main()
{
    //criação dos arrays
    char nomes[10][10];
    int idades[10];
    int idade, i, j, conta, maior, id;
    float media;
    // Contador de introduções (10x)
    for(i=0;i<10;i++)
    {
//Introduzir os nomes dos alunos no array (pelo utilizador)
            printf("Introduza o nome do aluno:");
            scanf("%s", &nomes[i]);
            printf("\Introduza a idade do aluno:");
            scanf("%d",&idades[i]);
            media+=idades[i];
    }
    //Verifica qual a maior idade
          conta=1;
          i=0;
         for(j=conta; j<10; j++)
         {
           if(idades[i]>idades[j])
           {
               maior=idades[i];
               conta=i;
           }
          else
            {
             maior=idades[j];
             conta=j;
             }
          }
      getch();
    //calculo da média
    media = media/10;
     printf( "\nA media das idades e: %f anos\n", media);
     printf( "\nA O aluno mais velho e: %s \n",nomes[conta]);

   getch();
}
// não consigo entender porque o erro da media...

De facto como vêm ai no codigo há uma coisa que me anda a partir a cabeça, é que devia fazer a media no fim e o compilador não me mostra bugs nenhuns... ainda vou tentar refazer o raciocinio todo de novo mas se alguém tiver uma dica não se acanhem. :rolleyes:

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...