Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Aline Neves

Problema C++/C vetor de 50 tamanho

Recommended Posts

Preciso de ajuda para desenvolver o programa que se segue. Não consegui sair da linha de raciocínio que se segue. Obrigada.

//Criar um programa que leia um vetor A de números inteiros, de tamanho 50. Em seguida, crie um novo vetor e coloque nele os elementos do vetor A. Que estão na faixa entre 10 e 40. Escreva ainda o maior e menor elemento do vetor A.

 

#include <stdio.h>

#include <stdlib.h>

int main(){

int vetor[50], i;

printf("Digite 50 numeros inteiros:\n");

for(i=0; i < 50; i++){

printf ("Valor %d: ",i+1);

scanf("%d",&vetor);

}

system("pause");

}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai precisar criar outro vetor, onde será armazenado os valores validados, e também, uma variável de controle, que armazenará quantos valores já foram inseridos nesse vetor, pois ele pode ter menos valores que o vetor original.

 

 
    for( i = 0; i < 50; i++ )
    {
        if( vetor[i] >= 10 && vetor[i] <= 40 )
            vetor2[controle++] = vetor[i];
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aline, vou tentar explicar de forma clara o que deve ser feito.

 

Vou reescrever de forma mais coerente o enunciado:

 

  1. Crie um programa que receba, do usuário, uma sequencia de cinquenta números inteiros e armazene-os em um vetor.
  2. Crie um segundo vetor, que armazenará os números entre 10 e 40, ou seja, maior que 10 e menor que 40, do primeiro vetor.
  3. Analise o segundo vetor e pondere o maior e o menor número deste.
  4. Até o momento você realizou o primeiro passo, vamos resolver os demais.

 

 

O segundo vetor, por lógica, deverá ter o mesmo tamanho do primeiro, pois todos os números inseridos pelo usuário poderão estar entre 10 e 40. Para poder obter todos os números do primeiro vetor, que obedecem a regra, deve percorre-lo termo por termo, armazenando-os no segundo vetor.

 

#include <stdio.h>
//#include <stdlib.h> - Não é necessario.

int
main()
{
    // O vetor no enunciado deve-se chamar A. B será o segundo vetor.
    int A[50], B[50], i, p = 0;
    
    printf("Digite 50 numeros inteiros:\n");
    
    for(i = 0; i < 50; i++)
    {
        printf ("Valor (%d): ", i+1);
        scanf("%d", &A[i]);
    }
    
    for(i = 0; i < 50; i++)
        // Aplicar a regra do enunciado
        if((A[i] > 10) && (A[i] < 40))
            B[p++] = A[i];

    // Neste ponto B contém todos os números entre 10 e 40, de A.
    //system("pause"); - Não é portatil
    getc(stdin);
    return 0;
}

Agora vamos encontrar o maior e o menor número do vetor B. Deve-se também percorrer todo o vetor, B que agora tem tamanho p, comparando cada um com uma variável, neste caso maior e menor.

 

#include <stdio.h>
//#include <stdlib.h> - Não é necessario.

int
main()
{
    // O vetor no enunciado deve-se chamar A. B será o segundo vetor.
    int A[50], B[50], i, p = 0, maior, menor;
    
    printf("Digite 50 numeros inteiros:\n");
    
    for(i = 0; i < 50; i++)
    {
        printf ("Valor (%d): ", i+1);
        scanf("%d", &A[i]);
    }
    
    for(i = 0; i < 50; i++)
        // Aplicar a regra do enunciado
        if((A[i] > 10) && (A[i] < 40))
            B[p++] = A[i];

    // Neste ponto B contém todos os números entre 10 e 40, de A.
    // Definindo maior e menor com o valor do primeiro termo de B.
    maior = menor = *B;
    
    for(i = 0; i < p; i++)
    {
        // Se a variavel maior tiver um valor menor que B[i],
        // muda-se seu valor para B[i]
        if(maior < B[i])
            maior = B[i];
        
        // Se a variavel menor tiver um valor maior que B[i],
        // muda-se seu valor para B[i]
        if(menor > B[i])
            menor = B[i];
    }
    
    /*
        Insira aqui o restante do código.
        Neste ponto: B contém todos os números entre 10 e 40, de A; maior
        contém o maior número do vetor B e menor o menor número.
    */
    
    //system("pause"); - Não é portatil
    getc(stdin);
    return 0;
}

 

Espero ter ajudado.

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aline,

 

tem uma forma mais fácil sem utilizar vetores.

 

Veja:

 

 

int i, n, ac;
ac = 0;
for(i=1; i<=5; i++) {
cout<<"\n\nDigite um numero: ";
cin>>n;
if (ac < n) {
ac = n;
}
}
cout<<"\n\n\nO maior e: "<<ac;
Espero ter ajudado. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.