Ir ao conteúdo

Posts recomendados

Postado

Eu pensava que dava na mesma por for e while, mas tem programas aqui que quando eu substituo o for por while dá erro..por exemplo, nesse programa dado um valor em cheque de c reais e notas de a e b reais, você tinha que saber se daria pra fazer a troca...ou seja a+b =c. Fica assim as duas resoluçoes com while e for: 

#include <stdio.h>
#define SIM 1
#define NAO 0
int main()
{
int a, b; /* valores das notas */
int c; /* valor do cheque */
int na; /* numero de notas de a reais */
int nb; /* numero de notas de b reais */
int possivel; /* indica e foi possivel descontar o cheque */
printf("Digite os valores das notas: ");
scanf("%d %d", &a, &B);
printf("Digite o valor do cheque: ");
scanf("%d", &c);
possivel = NAO;
for (na = 0; na <= c/a; na++)
{
for (nb = 0; nb <= c/b; nb++)
{
if (na*a + nb*b == c)
{
printf("%d nota(s) de %d e %d nota(s) de %d\n",na,a,nb,B);
possivel = SIM;
}
}
}
if (possivel == NAO)
{
printf("Nao é possivel descontar o cheque\n");
}
return 0;
}
 
E solução com while:
#include <stdio.h>
#define SIM 1
#define NAO 0
int main()
{
int a, b; /* valores das notas */
int c; /* valor do cheque */
int na; /* numero de notas de a reais */
int nb; /* numero de notas de b reais */
int possivel; /* indica e foi possivel descontar o cheque */
printf("Digite os valores das notas: ");
scanf("%d %d", &a, &B);
printf("Digite o valor do cheque: ");
scanf("%d", &c);
possivel = NAO;
na = 0;
while (na <= c/a)
{
nb = 0;
while (nb <= c/b)
{
if (na*a + nb*b == c)
{
printf("%d nota(s) de %d e %d nota(s) de %d\n",na,a,nb,B);
possivel = SIM;
}
nb = nb + 1;
}
na = na + 1;
}
if (possivel == NAO)
{
printf("Nao é possivel descontar o cheque\n");
}
return 0;
}
 
Por que ha essa diferença de ordem das variaveis?
E o que é esse DEFINE SIM e DEFINE NAO no começo? poderia retirar isso?

 

Postado

Cara,esse "Define",como o próprio nome diz,define um valor perpétuo a uma variavel,ou seja este valor após declarado nao é alterado,espero ter ajudado,quiser saber mais tem bastante video no youtube ^-^Abs

Postado

Uma outra duvida...na solução que usa "for" dessa questão..eu troquei a linha "if (possivel == NAO)" por "else if (possivel == NAO)" Mas quando eu ponho esse "else" antes o programa dá como saida "nao é possivel descontar o cheque" umas 2 vezes e daí sim dá os resultados das trocas , por exemplo, quando eu uso notas de 5 e 10 e cheque de 20 reais aparece isso que falei...

Por que está dando problema quando eu ponho else antes desse if?

Visitante
Este tópico está impedido de receber novas respostas.

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!