Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
glaukito

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

Recommended Posts

Postado (editado)

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

 

Editado por glaukito
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
17 horas atrás, glaukito disse:

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

 

Qual dúvida?

  • 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
Postado (editado)

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

Editado por devair1010
  • 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
Postado (editado)
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.

Editado por isrnick
  • 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






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

×