Ir ao conteúdo

Posts recomendados

Postado

Olá galera bom dia, sou iniciante em c++ e queria uma help se possivel. Estou com um problema onde devo calcular a multiplicação de um vetor por escalar. Vai ai um exemplo de Entrada e Saida. 3 = multiplicar por escalar; 3 = tamanho do vetor; 

 

Entrada:        No caso se a = 1, soma os vetores; a = 2 realiza o produto escalar; e a = 3 multiplica por escalar.

3 3

1 2 3

2

Saida: 2 4 6

#include <iostream>
using namespace std;
int main() {
int a, n, b = 0, soma = 0;
cin>>a>>n;

int k[n];
int l[n];
int m[n];

for(int i = 0; i<n; i++){
  cin>>k[i];
}
for(int i = 0; i<n; i++){
  cin>>l[i];
}
for(int i = 0; i<n; i++){
  if(a == 1){
    m[i] = k[i] + l[i];
    cout<<m[i]<<" ";
  }
  else if(a == 2){
    b = k[i] * l[i];
    soma += b;
  } 
  else if(a == 3){
    m[i] = k[i] * l[i]; 
    cout<<m[i]<<" ";
  }
 }
if(a==2){
 cout<<soma;
}

 

Segue o problema guys

Screenshot_1.png

Postado

Oih @Augusto CesarC

Torna sua lógica mais entendível se a escreve em switch, aproposito, fica mais elegante (para mim) que condições IF.

Principalmente porque as opções são sequenciais.

/*
https://www.clubedohardware.com.br/profile/1154853-augusto-cesarc/
*/
#include <iostream>
int main( ){
        double vr [100]{}; decltype(vr) v2, v1;
        double sclr= 1; 
        enum {SOMA_DE_2_VETORES= 1, PRODUTO_ESCALAR, MULT_DE_VETOR_ESCALAR};
        int ops= 0, ndims= 0;
        std::cin >>ops >>ndims;
        switch( ops ){
                case SOMA_DE_2_VETORES:
                case PRODUTO_ESCALAR:       for( int idx= 0; idx < ndims; ++idx ){ std::cin >>v2 [idx]; }
                case MULT_DE_VETOR_ESCALAR: for( int idx= 0; idx < ndims; ++idx ){ std::cin >>v1 [idx]; } break;
                default: std::cout <<"Operação: " <<ops <<" inexistente!\n";
                return( 1 );
        }
        std::cout <<vr [0];
        for( int idx= 1; idx < ndims; ++idx ){ std::cout <<' ' <<vr [idx]; }
}

No caso de Multiplicação de vetor por Escalar somente um ‘loop’ é acionado.

 

E no seu FOR-DE-CÁLCULOS faça igual.

 

 

13 horas atrás, Augusto CesarC disse:

Olá galera bom dia, sou iniciante em c++ e queria uma help se possivel. Estou com um problema onde devo calcular a multiplicação de um vetor por escalar. Vai ai um exemplo de Entrada e Saida. 3 = multiplicar por escalar; 3 = tamanho do vetor;

 

Para o tamanho do vetor, que no máximo é 100, você aplicou VLA! E percorrer o vetor é procedimento que você também sabe. Lógica também está certa: Nela ao Invés de usa um ‘loop’ para cada operação pensou em usar saltos de seleção para operar segundo a opção escolhida.

 

No caso 3 precisa, após o vetor, ler o escalar da multiplicação. Eu penso ser só isso.

  • 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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!