Olá, bom dia!
Estou com dúvidas em como eu poderia montar uma função em C. Essa função é responsável por receber as notas de todos os alunos de uma classe (que eu não sei quantos são), armazenar este valor dentro de um vetor. Os valores válidos são entre 1 e 149. Caso o usuário digite 150, o sistema deveria parar e ir para um menu de opções. O problema é que com o código que eu fiz, ele não para quando eu digito 150.
void vetor_cadastro_de_idade(int idade[]){
//Declaração de variáveis
int i;
//Instruções
do{
for(i = 0; i < 500; i++){
printf("Por gentileza, informe a idade do(a) aluno(a).\n");
scanf("%d", &idade[i]);
while (idade[i]<=0 || idade[i]>150){
printf("Prezado(a) usuario(a), o valor digitado e invalido. Tente novamente\n");
printf("Por gentileza, informe a idade do(a) aluno(a).\n");
scanf("%d", &idade[i]);
}
}
}while(idade[i]!=150);
}
O problema é o for.
Ele vai iterar 500 vezes e só depois o código chega na verificação do while (idade[i] != 150);.
Uma solução é não usar o for, afinal vc já tem um while. Simplesmente remova ele e incremente i no final com i++
Aí tbm teria que fazer a verificação de i<500 num if.
Funcionou direitinho!
Eu queria saber se poderia dar um help em como eu faço para achar o maior e o menor número usando vetores…
Eu calculei a média (criei uma função para calcular a média) e gostaria de saber como eu faço para os números dentro de um vetor para números maiores que a média e outro vetor para números menores que a média.
Função:
float calculo_da_media(int i, int vetor_de_idade[]){
//declarações
int soma, j;
float media;
//Instruções
soma = 0;
j = 0;
for (j=0; j<i; j++){
soma = soma + vetor_de_idade[j];
}
media = soma / i;
return(media);
}
Tem que ser no mesmo método? Se sim:
Abaixo dessa linha que você salvou a média é só fazer um for novamente no array e ir checando: se for menor que a média, guarda num array, se for maior, guarda em outro.