Ir ao conteúdo
  • Cadastre-se

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


Visitante

Posts recomendados

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);
	}
}

 

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

  • Membro VIP

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
Link para o comentário
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 2
Link para o comentário
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]);
    }

 

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

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