Ir ao conteúdo

Posts recomendados

Postado

alguém consegue, tentei mas.....

Crie um algoritmo que retorne a soma dos 50 elementos de um vetor. Apenas o valor da primeira posição do vetor deverá ser lido do teclado, os demais valores será a sequência onde o próximo elemento é o dobro do anterior. Exemplo:  3, 6, 12, 24, 48, 96…

Postado

@TulioMarques    você precisa usar variável de dupla precisão, pois com int ele só vai até 1073741824 depois disso ele repete uma sequencia que não é certa , então use double :

double vetor[50];

poste seu código para podermos ver como está e em que podemos ajudar .

 

Postado

O algoritmo ja esta somando os 50 elementos, mas ainda falta digitar apenas o 1º numero, e dele apresentar o dobro assim por diante.

 

int main(int argc, char *argv[]) {
    
    int i=0, soma=0;
    int a[50];
    
    cout << "\nDigite um numero";
    cin >> a;
    
    for (i=0;i<50;i++){
        cin >> a;
        
    }
    for (i=0;i<50;i++){
        soma= soma+ a;
        
    }
    
        
    
    
    cout << "\n\tSoma" << soma;
    
    return 0;
}

Postado
agora, TulioMarques disse:

O algoritmo ja esta somando os 50 elementos, mas ainda falta digitar apenas o 1º numero, e dele apresentar o dobro assim por diante.

 

int main(int argc, char *argv[]) {
    
    int i=0, soma=0;
    int a[50];
    
    cout << "\nDigite um numero";
    cin >> a;
    
    for (i=0;i<50;i++){
        cin >> a;
        
    }
    for (i=0;i<50;i++){
        soma= soma+ a;
        
    }
    
        
    
    
    cout << "\n\tSoma" << soma;
    
    return 0;
}

O que a questão pede é que você crie um vetor com 50 posições e que você leia apenas a posição [0] desse vetor. Para isso, você deverá usar apenas um loop para calcular o próximo número e somar.

 

No código que você apresentou, você está lendo como um inteiro comum 50 vezes além da primeira. Você deverá ler apenas a[0]. Depois, você pode usar um for para criar cada posição do vetor, mas esse deverá começar com i = 1, já que você já tem a posição 0. Dentro do for você deverá calcular da seguinte maneira:

 

a[i] = a[i-1]*2;
//Ou seja, tendo como referência i = 1 e a[0] = 3, o primeiro elemento a ser calculado será
//o elemento 
//a[1] = a[1-1]*2;
//a[1] = a[0]*2;
//a[1] = 3*2 = 6

 

  • Curtir 1
Postado

Mesmo assim com este método não consegui realizar, o algorítimo ainda pede mais numeros alem do a[0], e a sequecia com o dobro não tem resposta correta, osso.....

a = a[i-1]*2;

//Ou seja, tendo como referência i = 1 e a[0] = 3, o primeiro elemento a ser calculado será

//o elemento

//a[1] = a[1-1]*2;

//a[1] = a[0]*2;

//a[1] = 3*2 = 6

Postado

@TulioMarques   para conseguir o dobro do número você pode multiplicar o vetor na posição anterior por 2, então seu código ficaria assim :

#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
    int i=0, soma=0;
    double a[50];
    cout << "\nDigite um numero ";
    cin >> a[0];
    cout<<"Posicao 0 --> "<<a[0]<<endl;
    for (i=1;i<50;i++){
        a[i]=a[i-1]*2;
        cout<<"Posicao "<<i<<" --> "<<a[i]<<endl;
    }
    cout << "\n\tSoma" << soma;
    return 0;
}

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!