preciso criar um programa onde é inserida uma seqüência de inteiros e ao digitar -1 (flag), o programa finaliza e tem q mostrar o máximo, o mínimo e a média.
Consegui implementar a média sem problemas, porém estou tendo dificuldade em encontrar o máximo e o mínimo.
Já tentei fazer um if dentro do loop da seqüência e até mesmo fazer funções separadas q me retornassem os máximos e mínimos (o programa nem sequer chegou a passar pelas funções, acredito q eu deva ter declarado variáveis fora do lugar, ou algo do gênero...)
Segue o programa para análise.
Desde já agradeço!
#include <stdio.h>
#include <conio.h>
char op;
int i=0, j, count=0, maior, menor;
int num[100], soma[100], totalnums;
float media;
int main(void)
{
do
{ do
{
printf("Maximo: %d",maior);
//printf("\nMinimo: %d",menor);
printf ("\nEntre com um numero (-1 termina): ");
scanf ("%d",&num[count]);
fflush(stdin);
soma[count]=num[count]+soma[count-1];
count++;
system("cls");
if(num[0]==-1)
{
printf("\n\n\t\t\tSEQUENCIA INEXISTENTE..");
getch();
system("cls");
soma[0]=0;
count=0;
}
//Calcula o maximo e o minimo (INCORRETO)
while(num[i]>num[i-1] && i<=count-1)
{
maior=num[i];
i++;
}
}while(num[count-1]!=-1);
printf("Maximo: %d",maior);
printf("\nMinimo: %d",menor);
//Mostra a sequencia
printf("\n");
for(j=0;j<=count-2;j++)
printf("%d ",num[j]);
//calcula a media
totalnums=count-1;
media=(float)soma[totalnums-1]/(totalnums);
printf("\nMedia : %.3f",media);
media,count=0;
printf("\n\n");
printf("Deseja calcular novamente? ");
fflush(stdin);
scanf("%c",&op);
system("cls");
if (op == 'n')
{ printf("\n\n\n\t\t\t\t*** FIM ***");
getch();
exit();
}
}while(op != 'n' || op != 'N');
}
Pergunta
Marcio Henrique
Boa noite!
preciso criar um programa onde é inserida uma seqüência de inteiros e ao digitar -1 (flag), o programa finaliza e tem q mostrar o máximo, o mínimo e a média.
Consegui implementar a média sem problemas, porém estou tendo dificuldade em encontrar o máximo e o mínimo.
Já tentei fazer um if dentro do loop da seqüência e até mesmo fazer funções separadas q me retornassem os máximos e mínimos (o programa nem sequer chegou a passar pelas funções, acredito q eu deva ter declarado variáveis fora do lugar, ou algo do gênero...)
Segue o programa para análise.
Desde já agradeço!
#include <stdio.h> #include <conio.h> char op; int i=0, j, count=0, maior, menor; int num[100], soma[100], totalnums; float media; int main(void) { do { do { printf("Maximo: %d",maior); //printf("\nMinimo: %d",menor); printf ("\nEntre com um numero (-1 termina): "); scanf ("%d",&num[count]); fflush(stdin); soma[count]=num[count]+soma[count-1]; count++; system("cls"); if(num[0]==-1) { printf("\n\n\t\t\tSEQUENCIA INEXISTENTE.."); getch(); system("cls"); soma[0]=0; count=0; } //Calcula o maximo e o minimo (INCORRETO) while(num[i]>num[i-1] && i<=count-1) { maior=num[i]; i++; } }while(num[count-1]!=-1); printf("Maximo: %d",maior); printf("\nMinimo: %d",menor); //Mostra a sequencia printf("\n"); for(j=0;j<=count-2;j++) printf("%d ",num[j]); //calcula a media totalnums=count-1; media=(float)soma[totalnums-1]/(totalnums); printf("\nMedia : %.3f",media); media,count=0; printf("\n\n"); printf("Deseja calcular novamente? "); fflush(stdin); scanf("%c",&op); system("cls"); if (op == 'n') { printf("\n\n\n\t\t\t\t*** FIM ***"); getch(); exit(); } }while(op != 'n' || op != 'N'); }Editado por Marcio HenriqueLink para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
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.