Ir ao conteúdo
  • Cadastre-se
glaukito

C++ Não faz multiplicação de vetores iguais.

Recommended Posts

Boa noite!

Estou com dúvida com o seguinte exercício:

Desde já agradeço a atenção.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
#include <time.h>
#include <conio.h> 
#include <cstdlib>
#include <ctime>

/*3. Escreva um programa que leia dois vetores de 10 posições e faça a multiplicação dos elementos de mesmo
índice, colocando o resultado em um terceiro vetor. Mostre o vetor resultante.*/

int main (void){
	
	int valA [10], valB [10], result=0, i;

	printf ("10 valores\n");
	
	for (i=0; i<9; i++){
	scanf ("%d", &valA[i]);
}
	printf ("mais 10 valores\n");
	
	for (i=0; i<9; i++){
	scanf ("%d", &valB[i]);
}

	if (valA[i]==valB[i]){
		
	result= valA[i]*valB[i];
	
	printf ("%d, %d, %d", valA, valB,result);
	}
}

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi, simon! o programa não faz a multiplicação dos valores iguais.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@glaukito    o result precisa também um vetor de dez posições pois serão dez resultados

int valA [10], valB [10], result[10], i;

  e então depois de pegar os vinte números , você coloca outro loop para fazer as multiplicações , não precisa verificar se vetA é igual a vetB ,multiplicando o valor de  vetA pelo vetB e coloca o resultado no vetor result naquela mesma posição ,  e depois você coloca outro loop para imprimir os resultados que estarão no vetor result  .

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

@glaukito, além do citado por @devair1010, temos:

 

1#

Sempre mantenha o código indentado. É de suma importância. Por exemplo:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
#include <time.h>
#include <conio.h> 
#include <cstdlib>
#include <ctime>

/*3. Escreva um programa que leia dois vetores de 10 posições e faça a multiplicação dos elementos de mesmo
índice, colocando o resultado em um terceiro vetor. Mostre o vetor resultante.*/

int main (void) {

    int valA [10], valB [10], result=0, i;

    printf ("10 valores\n");
    for (i=0; i<9; i++) {
        scanf ("%d", &valA[i]);
    }
    
    printf ("mais 10 valores\n");
    for (i=0; i<9; i++) {
        scanf ("%d", &valB[i]);
    }

    if (valA[i]==valB[i]) {
        result= valA[i]*valB[i];
    printf ("%d, %d, %d", valA, valB,result);
    }
}

 

 

 

2#

Você está fazendo um monte de includes sem necessidade... pelo que eu vi, basta o stdio.h. O resto pode apagar.

 

 

 

3#

Se o vetor tem 10 posições, o for deve ir de 0 a 9, ou seja, a condição de para deveria ser i<10 ou i<=9 (a primeira forma é mais comum).

 

 

 

4#

Para imprimir um vetor é necessário informar a posição, daí poderá usar mais um for para percorrer todas...

 

 

 

***

 

No aguardo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi, devair! mas sem o if como o programa multiplicará apenas os valores iguais?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
15 minutos atrás, glaukito disse:

oi, devair! mas sem o if como o programa multiplicará apenas os valores iguais?

 

Não é isso que o enunciado pede. O enunciado pede para multiplicar os elementos de mesmo índice, não os que tenham valores iguais.

 

Por exemplo, quando multiplica valA[0] * valB[0] está multiplicando 2 elementos com índices iguais, ou seja os dois elementos com índice 0 nos vetores valA e valB.

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá! obrigado por todas as dicas. agora o programa está fazendo multiplicações, mas os resultados são incoerentes.

ficou da seguinte forma o programa:

#include <stdio.h>

/*3. Escreva um programa que leia dois vetores de 10 posições e faça a multiplicação dos elementos de mesmo
índice, colocando o resultado em um terceiro vetor. Mostre o vetor resultante.*/

int main (void) {

    int valA [10], valB [10], result [10], i;

    printf ("A: 10 valores\n");
    for (i=0; i<=9; i++) {
        scanf ("%d", &valA[i]);
    }
    printf ("B: 10 valores\n");
    for (i=0; i<=9; i++) {
        scanf ("%d", &valB[i]);
    }

   for (i=0; i<=9; i++) {
    	result[i]= valA[i]*valB[i];
	}
	
	for (i=0; i<=9; i++) {
   		printf ("%d - %d - %d", valA[i], valB[i],result[i]);
    }

 

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

@glaukito Que problema está dando? Aqui está funcionando corretamente, só estava faltando o \n no último printf.

 

#include <stdio.h>

/*3. Escreva um programa que leia dois vetores de 10 posições e faça a
multiplicação dos elementos de mesmo índice, colocando o resultado em um
terceiro vetor. Mostre o vetor resultante.*/

int main (void) {

    int valA [10], valB [10], result [10], i;

    printf ("A: 10 valores\n");
    for (i=0; i<=9; i++) {
        scanf ("%d", &valA[i]);
    }
    printf ("B: 10 valores\n");
    for (i=0; i<=9; i++) {
        scanf ("%d", &valB[i]);
    }

    for (i=0; i<=9; i++) {
        result[i]= valA[i]*valB[i];
    }

    for (i=0; i<=9; i++) {
        printf ("%d - %d - %d\n", valA[i], valB[i],result[i]);
    }
    
    return 0;
}

 

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

realmente estava faltando o \n. muito obrigado pela ajuda de vocês. espero daqui mais um tempo estar ajudando pessoas da mesma forma que vocês me ajudaram.

 

abraço!

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×