Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida - vetor


Marcio Henrique

Pergunta

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 Henrique
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Uma idéia:

Rode o array num (é este que você quer ver o máximo e mínimo?) índice por índice.

Se o número for maior que o máximo, atualize o maior, se for menor que o mínimo, atualize o menor. (Com o valor do índice)

Exemplo:

#include <stdio.h>

int main(void) {
    int iMax, iMin;
    int iValues[6] = {1, 3, 5, 0, 8, 10};
    int i;

    iMax = iMin = iValues[0];

    for(i = 1; i < 6; i++) {
        if( iMax < iValues[i] )
            iMax = iValues[i];

        if( iMin > iValues[i] )
            iMin = iValues[i];
    }

    printf( "%d - %d", iMin, iMax ); // 0, 10 
}

Não sei como está funcionando, escrevi pelo fórum mesmo.

Não consigo pensar em nada diferente disso no momento, mas se tiver uma idéia melhor volto a postar.

Abraços.

Editado por Durub
Link para o comentário
Compartilhar em outros sites

  • 0

você esta conseguindo rodar o programa se ter declarado a biblioteca stdlib.h

visto que você estar usando system("cls");

e

sem o '1' dentro exit();

???

fora isso

é simples:

antes de um loop, você inicializa maior

maior = 0;

toda vez que você atualizar o vetor com algum valor, você vai testa-lo

if( vetor[na_posicao_atual] >= maior )

maior = vetor[na_posicao_atual];

else

menor = vetor[na_posicao_atual];

nem precisa inicializar o menor

ainda bem!

pois seria mais complicado

lembrando que,

quando o usuario pedir para fazer um 'novo vetor'

o 'maior' deve ser inicializado novamente

'menor' não precisa

se não tiver conseguindo visualizar

eu faço um programa meu,

e posto aqui

certo?

abraços,

boa sorte!

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...