programação em c

1. programação em c

Victor Hugo freire cardoso
vitaohugo

(usa Outra)

Enviado em 02/11/2016 - 21:05h

Implemente um algoritmo que receba 10 idades diferentes e informe em que ano nasceu cada pessoa com as idades
inseridas. Considere que estamos em 2016 e o mês de nascimento e mês atual não importa.
Deve ser utilizado obrigatoriamente vetores para guardar as idades e os anos de nascimento.
Passos:
i. Dê boas vindas ao usuário e explique brevemente a funcionalidade do programa.
ii. Inicialize as variáveis.
iii. Solicite ao usuário que insira dez idades. Utilize a função “for” para variar as posições do vetor e a função “while” para
não permitir que seja inserida idade inexistente. (idade[i] ≥ 0)
iv. Calcule os anos de nascimento e guarde os respectivos valores no vetor ano[i].
v. Calcule também a média aritmética entre as idade inseridas.
vi. Utilizando a função “for” imprima as idades inseridas e seus respectivos anos de nascimento, crie uma frase para tal
atividade de forma que o usuário compreenda perfeitamente do que se trata.
vii. Imprima após a média entre as idades inseridas.
viii. Ao fim do programa, permita o usuário escolher se deseja realizar novo cálculo.
O meu programa ficou assim :
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main()
{

int idade[N], i, ano_nasc[N], soma=0;
char outro;
printf("Oi!\n");
do {
for (i=0; i<N; i++) {
printf("Informe a idade da %dª pessoa: ", i+1);
scanf("%d", &idade[i]);
while (idade[i] < 0) {
printf("Idade inválida. Reinforme a idade da %dª pessoa: ", i+1);
scanf("%d", &idade[i]);
}
ano_nasc[i] = 2016 - idade[i];
soma += idade[i];
}
for (i=0; i<N; i++)
printf("Idade: %d\tAno de nascimento: %.4d\n", idade[i], ano_nasc[i]);
printf("Média das idades: %.2f\n\n", (float) soma / N);
while (getchar() != '\n'); /* Limpa buffer de entrada */
printf("\nOutro cálculo [S/N]: ");
scanf("%c", &outro);
} while (toupper(outro) != 'N');
return 0;
}
mas ele tem alguns pobremas que nao consigo resolver ,tipo as idades tem que ser diferente uma da outra mas ele aceita idades iguis e ele tambem ta aceitando letras como idade


  


2. Re: programação em c

Paulo
paulo1205

(usa Ubuntu)

Enviado em 03/11/2016 - 03:24h

vitaohugo escreveu:

mas ele tem alguns pobremas que nao consigo resolver ,tipo as idades tem que ser diferente uma da outra mas ele aceita idades iguis e ele tambem ta aceitando letras como idade


Para fazer com que as idades sejam distintas, você terá de verificar se a idade digitada bate com alguma das outras que tenham sido digitadas anteriormente.

Quanto à validação da entrada, você terá de testar o valor de retorno da função scanf(), pois ela pode não completar com sucesso a operação de leitura (por exemplo, se você digitar letras numa leitura de valor numérico). E se você perceber que a função falhou, terá de tratar a causa da falha (seguindo com o exemplo, você teria de tirar as letras do caminho antes de tentar uma nova leitura do valor numérico).