Jump to content
vinicius.benedito98

Dúvida com vetor em C++

Recommended Posts

Faça um Programa em Linguagem C que receba o nome e a nota de 180 alunos de uma sala e armazene em vetor. Calcule e mostre: 
- A média da sala; 
- O nome do aluno com a maior nota; 
- O nome do aluno com a menor nota; 
- Os nomes dos alunos aprovados;

O meu código é esse :

#define N 180 
int main() { 
int i, ind_maior, ind_menor; 
float nota[N], soma=0, media, min_aprov=7; 
char nome[N][50]; 
for (i=0; i printf("Informe o nome do %dº aluno: ", i+1); 
gets(nome); 
printf("Informe a nota do %dº aluno: ", i+1); 
scanf(" %d ", &nota); 
soma += nota

media = soma / N; 
printf("\nMédia da sal: %.2f\n", media); 
ind_menor = ind_maior = 0; 
for (i=1; i if (nota < nota[ind_menor]) 
ind_menor = i; 
if (nota > nota[ind_maior]) 
ind_maior = i; 

printf("Menor nota: %s com %.2f\n", nome[ind_menor], nota[ind_menor]); 
printf("Maior nota: %s com %.2f\n", nome[ind_maior], nota[ind_maior]); 
printf("Aprovados:"); 
for (i=0; i if (nota >= min_aprov) 
printf("\t%s com: %.2f\n", nome, nota); 

return 0; 
}


Porém quando vou executa-lo, o programa pede para inserir o nome e nota do aluno apenas uma vez, e fica por isso, ele não exibe os resultados, alguém pode me ajudar ?

Share this post


Link to post
Share on other sites

Você pode fazer isso com o laço for

 

for(int i=0; i < 180; i++) {
    printf("Digite o nome e a nota do aluno: ");
    scanf("%s %f", nomeDoAluno, notaDoAluno);
  
    if(maiorNota == NULL) {
        maiorNota = notaDoAluno;
        maiorNotaNomeDoAluno = nomeDoAluno;
        menorNota = notaDoAluno;
        menorNotaNomeDoAluno = nomeDoAluno;
    }else if(maiorNota < notaDoAluno){
        maiorNota = notaDoAluno;
        maiorNotaNomeDoAluno = nomeDoAluno;
    }
     if(menorNota > notaDoAluno) {
        menorNota = notaDoAluno;
        menorNotaNomeDoAluno = nomeDoAluno;
     }
    somaTotal += notaDoAluno;
}

Tenta implementar isso no código, o laço Pega a maior nota, a menor e a Soma total de todas as notas.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By TheRuivo
      Olá,
      estou tentando criar um código em c++ com funções e procedimentos a um tempo, só que eles sempre retornam 0, se alguém puder me ajudar, agradeço. ;)
      Segue o código:
      #include <iostream>
      #include <stdlib.h>
      #include <stdio.h>
      #include<locale.h>
      #include<math.h>
      #include<cmath>
      using namespace std;
      void Triangulo(int la)
      {
          double b,h,r;
              printf("Por favor digite o valor da base e da altura: \n");
              scanf("%i %i",&b,&h);
              r=(b*h)/2;
              printf("A área é: %i \n",r);
      }
      double Quadrado(int la, int b, int h)
      {
          double r;
          printf("Por favor digite o valor da base e da altura: \n");
          scanf("%i %i",&b,&h);
          r=b*h; 
          printf("A área é: %i ",r);
          return r;
      }
      int Menu(int la)
      {
          int b,h;
          switch(la)
          {
              case 3:
                  printf("É um triângulo \n");
                  Triangulo(la);
                  break;
              case 4:
                  printf("É um quadrilátero \n");
                  Quadrado(la,b,h);
                  break;
              case 5:
                  printf("É um pentágono \n");
                  break;
              case 6:
                  printf("É um hexágono \n");
                  break;        
          }
          return la;
      }
      int main(int argc, char** argv) {
          setlocale(LC_ALL, "Portuguese");
          int b,h,r,l;
          printf("Por favor insira a quantidade de lados da figura(3-6): ");
          scanf("%i",&l);
          Menu(l);
          
          
          
             
          system("pause");
          return 0;
      }
    • By Thalysson Torres
      Estou com problema nesse código, na verdade é uma duvida de como trabalhar melhor com string. Eu quero faze um programa e nele quero receber do usuario, o sexo, caso o usuario digite um nome no local do sexo e seja diferente de Masculino, Feminino... de mensagem de erro. 
       
       
      #include <stdio.h>
      #include <stdlib.h>
      #include <math.h>

      int main()
      {
          char nome [25], sexo;

          
          
      printf("Digite o nome \n");
      scanf("%[\n]", &nome);
      printf("Digite o Sexo:\n Para feminino digite: F \n\n Para masculino digite; M \n");
      scanf("%c",&sexo);
      if (sexo != 'f'|| 'F' || 'M' || 'm')
          printf("Sexo Invalido");
       
       
      ...
       


          
          return 0;
      }
       
    • By Keven Augusto
      Primeiramente, bom dia/boa tarde/boa noite.
       
      Eu estou migrando de vez para o Linux e percebi que não possui nenhuma aplicação nativa de cronometro como a que estava acostumado a utilizar no Windows 10. Eu faço home office, então uso muito para gerir o tempo de trabalho diário e gostaria de utilizar no Ubuntu também. 
       
      Procurei na loja do sistema, mas não encontrei nenhum que me agradasse e, como estudante de Engenharia de Computação, pensei em fazer um simples que execute no terminal mesmo e possua as funções básicas que preciso: start, pause e reset.
       
      Porém, estava pensando e não aprendi ainda e não tenho a menor ideia de como faria para que fosse exibido no terminal o contador e ao mesmo tempo examinar o teclado para que pause a execução caso seja pressionada uma determinada tecla.
       
      Alguém teria alguma ideia de como possa fazer para isso?
       
      Eu pensei em iniciar um novo terminal via código mesmo e ir mostrando o contador neste outro terminal, aí no primeiro eu insiro os comandos para pausar, começar ou reiniciar o tempo. Penso que seja mais ou menos isso que preciso fazer, mas não tenho certeza e gostaria de uma luz.
    • By joaov369
      Então, preciso fazer um programa em c++ que duplique o valor do vetor se ele for um numero par, até ai tudo bem, e preciso trocar a ordem desse vetor ate a penultima posição, desde a primeira, isso que tá garrando aqui, se alguem puder dar uma olhada no meu codigo.
      #include <iostream> using namespace std; #define n 10 int main() { int a[n], temp; for (int i = 0; i<n; i++) { cin >> a[i]; } for (int i = 0; i<n; i++) { if (a[i] % 2 ==0) a[i]=a[i]*2; } for (int i = 0; i<n-1; i++) { temp=a[i]; a[i]=a[i+1]; temp=a[i]; a[i]=temp; } for (int i = 0; i<n; i++) { cout << a[i] << " " ; } return 0; }  
    • By BrunoPro
      Boas galera.
       
      Estou em formação de iniciação a C++ de 50h, e completei 35h até agora, meu professor passou 50 exercícios para fim de semana, e estou com problema em 2 deles.
       
      Este nem entendi : O resultado da divisão inteira de um número inteiro por outro número inteiro pode sempre ser obtido utilizando-se apenas o operador de subtração. Assim, se quisermos calcular (7/2),
      basta subtrair o dividendo (2) ao divisor (7), sucessivamente, até que o resultado seja menor do que o dividendo. O número de subtrações realizadas corresponde ao quociente inteiro, conforme o exemplo seguinte:
      7 - 2 = 5
      5 - 2 = 3
      3 - 2 = 1
      Descreva um programa para o cálculo da divisão de um inteiro pelo outro. Note que se o dividendo for zero, esta é uma operação matematicamente indefinida.
       
       
      E o segundo exercicio é o seguinte  escrever de 0 a 99 por extenso o numero, alguém me dá uma ajuda?
      #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <iostream> #include <locale> using namespace std; int main() { setlocale(LC_ALL, "Portuguese"); system ("color 1B"); int n,a,b,c; cout << "Insira um número de 0 a 99 e o retorno seja o número por extenso\n"; cout << "Insira o número : "; cin >> n; { switch (a) { case 0 : cout << "zero"; break; case 1 : cout <<"um"; break; case 2 : cout <<"dois"; break; case 3 : cout <<"tres"; break; case 4 : cout <<"quatro"; break; case 5 : cout <<"cinco"; break; case 6 : cout <<"seis"; break; case 7 : cout <<"sete"; break; case 8 : cout <<"oito"; break; case 9 : cout <<"nove"; break; } switch (b) { case 0 : cout <<"dez"; break; case 1 : cout <<"onze"; break; case 2 : cout <<"doze"; break; case 3 : cout <<"treze"; break; case 4 : cout <<"catorze"; break; case 5 : cout <<"quinze"; break; case 6 : cout <<"dezesseis"; break; case 7 : cout <<"dezassete"; break; case 8 : cout <<"dezoito"; break; case 9 : cout <<"dezanove"; break; } switch (c) { case 2 : cout <<"vinte"; break; case 3 : cout <<"trinta"; break; case 4 : cout <<"quarenta"; break; case 5 : cout <<"cinquenta"; break; case 6 : cout <<"sessenta"; break; case 7 : cout <<"setenta"; break; case 8 : cout <<"oitenta"; break; case 9 : cout <<"noventa"; break; } } { if (n >=20 && n<100) cout << c << a; } { if ( n>10 && n<20) cout <<b; } { if (n<=10) cout <<a << c; } return 0; }  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.