Ir ao conteúdo
  • Cadastre-se

Não consigo o resultado correto do programa


Mariana França

Posts recomendados

Bom dia pessoal,

Estou com um problema, escrevi o programa do exercício abaixo e ele não me da o resultado correto, se puderem me ajudar por favor.

Escreva um programa que encontre o menor inteiro positivo n que satisfaça as seguintes

condições:

N / 3 = x inteiros e resto 2

N / 5 = y inteiros e resto 3

N / 7 = z inteiros e resto 4

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

int n;

n=1;

cout<<"digite um numero a ser testado"<<endl;

cin>>n;

if(n%3==2)

{if(n%5==3)

{{if(n%7==4)

n =n/3;

n =n/5;

n =n/7;

n++;

cout<< "o numero e"<<" "<<n<< endl;

}

}

else(n%3!=2&&n%5!=3&&n%7!=4);

cout<<"não satisfaz"<<endl;

system ("pause");

return 0;

}}

Link para o comentário
Compartilhar em outros sites

Para postar códigos utlize a tag

, assim você facilita a leitura do seu código para terceiros.

Como utilizar a tag [code]: http://forum.clubedohardware.com.br/tags-code-como/732923

Tudo bem, mesmo que você não tenha usado a tag [code]...

Você tem um problema de lógica no seu programa, pois você tem que achar o menor inteiro negativo que satisfaça as exigências não pedir para o usuário ficar digitando.

Outra coisa, por que aquele monte de IF aninhado, era só usar o operador lógico &&.

O ELSE não precisa daquele monte de checagens, pois se o numero não passar no primeiro IF, já significa que ele não satisfaz o sistema.

Então use um loop, e um booleano para checar se o numero satisfez suas exigências, faça isso dentro de um loop WHILE(booleano==false) ou WHILE(!booleano). Se o numero satisfazer troque o booleano para true. Se não faça o algoritmo aumentar o valor do numero em 1 (iteração), ate que ele satisfaça o sistema.

Espero ter ajudado,qualquer duvida poste aqui.

Se não entendeu meu texto escreva aqui onde você ficou com duvida.

ps: Edite a sua postagem e use a tag code.

Link para o comentário
Compartilhar em outros sites

  • 5 anos depois...

Segue código:

#include<stdio.h>

int main(){

    int i;

    for(i = 159; ; i++)
        if(i % 3 == 2 && i % 5 == 3 && i % 7 == 4)
            break;

    printf("%d %% 3 = %d, %d %% 5 = %d, %d %% 7 = %d", i, i % 3, i, i % 5, i, i % 7);


return 0;
}

 

 

Resolução do código comentado:

 

https://youtu.be/_ap5JajQlhs

Link para o comentário
Compartilhar em outros sites

Apenas uma correção. O i deve iniciar em 1. Acabei salvando com um teste que fiz.

 

Em 03/11/2016 às 12:46, Exata0mente disse:

Segue código:


#include<stdio.h>

int main(){

    int i;

    for(i = 159; ; i++)
        if(i % 3 == 2 && i % 5 == 3 && i % 7 == 4)
            break;

    printf("%d %% 3 = %d, %d %% 5 = %d, %d %% 7 = %d", i, i % 3, i, i % 5, i, i % 7);


return 0;
}

 

 

Resolução do código comentado:

 

https://youtu.be/_ap5JajQlhs

 

Link para o comentário
Compartilhar em outros sites

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!