C++ Help

bumblechord

Power Member
Tou aqui com umas dificuldades em fazer uma coisa ,será que me podem ajudar ??


Tenho de fazer um exercicio e é o seguinte:

Escreva um programa em C++ (utilizando arrays) que apresente no ecrã:
- a média das idades de n alunos de uma turma;
- o número de alunos com idade inferior a média das idades da turma ;
- a idade do aluno mais velho;




Estou com um problema, na declaraçao do array

Código:
#include <iostream>
using namespace std;
main () {
    int i,n,max,soma,nidade;
    float media;
    int idades [n];
    cout << "Introduza o número de alunos que a turma tem";
    cin >> n;
        for (i = 0; i< n; i++){
    cout << "Introduza uma idade para o "<<i<<"aluno"'\n';
    cin << idades [i];
        soma += idades [i];}
    if (n>0) 
        media = soma/n;
        cout<< "Média das idades é "<<media;
        max = idade [0];
    for (i = 0 ;i<n; i++){
    if (idade[i]<media) nidade+=1;
    if (max<idade[i]) max = idade[i];}
}

inda nao está todo feito

queria saber como posso declarar a array declarando o número de indices depois :S

cumprimentos e agradeço ajuda
 
Última edição pelo moderador:
Não podes. Ao declarares o array, o compilador vai reservar espaço em memória para o colocar lá, e esse espaço depende da sua dimensão e do seu tipo de dados. Ora se ele não souber quantos elementos o array vai ter na altura da sua declaração, então como vai saber quanta memória vai alocar?
 
Na teoria, podes fazer o que queres com alocação de memória dinâmica. Mas na prática, só depois de saberes o tamanho é que realmente ele cria o array.
Código:
int * idades;
//inicializar n, dar valor a n
idades = new int[n];
//...
//no final não esquecer o delete
delete [] idades;
 
Última edição pelo moderador:
Código:
#include <iostream>
using namespace std;
main () {
int i,n,inf=0,max;
int * idades;
float soma = 0, media = 0;
cout<<"Quantos alunos tem a turma ?";
cin>>n;
idades = new int [n];
for (i = 0 ; i < n ; i++){
cout<<"Introduza a idade do aluno n "<<i+1; 
    cin >> idades[i] ;
soma = soma + idades [i]; }
if (n>0) {
    media = soma/n;
    cout<<"Média ="<<media ;
    max = idades[0];
    for ( i = 0 ;i<n; i++){
        if (idades[i]<media) inf+=1;
        if (max<idades[i]) max = idades[i];
    }
cout << "Existem "<<inf<<" alunos com idade inferior à media"<<'\n';
cout << "O "<<max<<" aluno é o mais velho da turma";
delete [ ] idades;
}
}
 
Última edição pelo moderador:
Back
Topo