Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
italobrenun

amigos me ajudem aqui [condições]

Posts recomendados

amigos eu não consigo achar o erro, já estou uma hora tentando fazer isso aqui é ja estou irritado bom o problema é um seguinte:

Contrua um programa em Linguagem C que leia 30 números naturais incluindo o zero, para um vetor. Outro vetor com a mesma quantidade de posições deverá ser criado, onde cada posição devera incluir:

* O drobro do valor presente na mesma posição, caso o valor seja par

* O triplo do valor presente na mesma posição caso caso seja divisivel por 3

* O quíntuplo do valor caso seja divisivel por 5

OBS: caso o valor não se encaixe em nenhum do critérios acima, ou se encaixe em mais de um , deverá ser armazenado o mesmo na integra.

:mad:A minha condição de ser par e ser divisil por 3 ele fica o triplo ja tentei e não acho um jeito para consertar me ajudem por favor.

Quanto o usuário digita 6 ou seja divisil por 3 é par aparece 18.:confused:

AGRADEÇO DESDE JÁ :lol:

Olhem meu código:eek: por favor:


//Questão 3
// Italo Brenun da Silva Gomes
#include <stdio.h>
#include <stdlib.h>

int main()
{
int vet[3],vet2[3];
int x,aux,i,cont;
//--------------------------
aux=0;
i=3;
cont=0;
//---------------------------
for(x=0;x<i;x++) /* capturando os numeros */
{
printf(" insira %do numero: ",x+1);
scanf("%d",&vet[x]);
}
//-----------------------
for(x=0;x<i;x++)
{
vet2
[x]=vet[x];
}

//--------------------
/*TESTES*/
//----------------------------------------------------------------------------//
for(aux=0;aux<i;aux++,cont=0) //OK
{
if(vet[aux]%2==0)
{
cont=1; /* é par */
}
if(vet[aux]%3==0)
{
cont=3; /* divisil 3 */
}
if(vet[aux]%5==0)
{
cont=5; /* divisil por 5*/
}


//----------------------------------------------------------------------------------------------
/*if((cont==1)&&(cont==3)) // condições OK
{
vet2[aux]=vet[aux];
}else
if((cont==3)&&(cont==5))
{
vet2[aux]=vet[aux];
}else*/
//----------------------------------------------------------------------------------------------
if(cont==3)
{
vet2[aux]=vet[aux]*3;
}else
if(cont==2)
{
vet2[aux]=vet[aux]*2;
}else
if(cont==5)
{
vet2[aux]=vet[aux]*5;
}else
vet2[aux]=vet[aux];

}//* fecha o for



/*if(cont==1) //dando errado
{
vet2[aux]=vet[aux]*2;
}else
if(cont==3)
{
vet2[aux]=vet[aux]*3;
}else
if(cont==5)
{
vet2[aux]=vet[aux]*5;
}else
if((cont==1)&&(cont==3))
{
vet2[aux]=vet[aux];
} */
/* if(cont==1)
vet2[aux]=vet[aux]*2; //Só entrará aqui se o nº obedecer a apenas o criterio de ser par
else if(cont==3)
vet2[aux]=vet[aux]*3;//Só entrará aqui se o nº obedecer a apenas o criterio de ser divisivel por 3
else if(cont==5)
vet2[aux]=vet[aux]*5;//Só entrará aqui se o nº obedecer a apenas o criterio de ser divisivel por 5
else
vet2[aux]=vet[aux]; //Entrará aqui caso o nº obedeca a nenhum ou a mais de um dos critérios

}*/


//} /* fecha o for de cima */
//**************************************************************************
//**************************************************************************
system("cls");
//****************************************************
printf("----------------------------------------\n");
printf("-- ANTES ------- DEPOIS-----\n");
//****************************************************
for(x=0;x<i;x++)
{
printf("----%d\n-----------------------%d\n-----\n",vet[x],vet2[x]);
printf("----------------------------------------\n");
}

system("PAUSE");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

hey cara, tenta isso aqui:

                       /*TESTES*/
//----------------------------------------------------------------------------//
for(aux=0;aux<i;aux++,cont=0) //OK
{
if(vet[aux]%2==0)
{
cont=1; /* é par */
}
else if(vet[aux]%3==0)
{
cont=3; /* divisil 3 */
}
else if(vet[aux]%5==0)
{
cont=5; /* divisil por 5*/
}

creio eu que seja esse problema no if...

como são apenas if acontece o seguinte:

ele verifica o primeiro if, quando sair dele, ele verifica o segundo e depois o terceiro...

colocando um else if depois do primeiro if, se caso o primeiro if não for verdadeiro, ele vai verificar o segundo, se caso ele não for verdadeiro ele verifica o terceiro... e no caso do seu teste o primeiro e o segundo eram verdadeiros, e como o primeiro vem antes do terceiro (juraaaaaa?), ele pega apenas a segunda opção, que no caso é o cont=3... com o else if, quando achar um if verdadeiro, o programa sai dos if's...

tenta isso aí... se der certo avisa... \o/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pergunta:

Se eu colocar if,if,if,if,if,if,if,if,if,if,if,if,if,if,if,if,if,if,if,if,if,if,if,if e else, ele verifica cada condição se é verdadeira independente se o anteior é ou não verdadeiro?

Se eu colocar if, else if,else if,else if,else if,else if,else if,else if,else if e else if, ele verifica as condições uma por uma até achar um verdadeiro e assim saindo do laço do if, ou caso falso pulando direto para o else?

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
Entre para seguir isso  





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

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!