Informática, perguntado por brennovitor, 10 meses atrás

O professor de algoritmos pediu para os alunos desenvolverem um programa em linguagem C, que lesse dois números, e dizerem qual é o número maior. Um dos alunos está em dúvida; ele fez o programa, mas o resultado sempre dá errado. Observe o código-fonte abaixo e aponte o erro na lógica do programa e indique qual seria a solução para o programa funcionar.

01 - #include
02 -
03 - int main(void){
04 - int a, b;
05 - printf("Digite o valor de A:");
06 - scanf("%d", &b);
07 - printf("Digite o valor de B:");
08 - scanf("%d", &a);
09 - if(a > b){
10 - printf("A > B\n");
11 - } else if(b > a){
12 - printf("B > A\n");
13 - } else {
14 - printf("A = B\n");
15 - }
16 - }


celsooliveirajr: Linha 6 e 8!
celsooliveirajr: 06 - scanf("%d", &a);
celsooliveirajr: 08 - scanf("%d", &b);
celsooliveirajr: Coloca como estar na atividade!
celsooliveirajr: Faça apenas a mudança :scanf("%d", &b);
celsooliveirajr: scanf("%d", &a);
celsooliveirajr: Coloque o espaçamento igual também
edsonreinert1: Concordo o erro esta apenas nas linhas 6 e 8 onde foi invertido as letras "a" e "b"
fstolks: qual programa voces usam para testar os codigos?
Aiakos: Eu utilizo o "Dev-c++"

Soluções para a tarefa

Respondido por jonasdemon
11

Resposta:

05 - printf("Digite o valor de A:");

06 - scanf("%d", &a);

07 - printf("Digite o valor de B:");

08 - scanf("%d", &b);

Explicação:

Ele inverteu as variáveis no scanf, assim ele sempre vai mostrar o menor número como maior


celsooliveirajr: Com certeza.Estar certo?
fabriciobranco198787: Bom dia...nas de tbm não deveria incluir a biblioteca <#stdlib.h>??
edsonreinert1: Sim se você for rodar esse programa ele só funcionará se incluir as bibliotecas, porém, a atividade pede para achar o erro no corpo do algoritmo.
Respondido por mattheuos94
4

Resposta:

Mano isso é bem simples. ele apenas trocou a linha 06 com a 08.

Explicação:

Assim que deveria ficar:

01 - #include

02 -

03 - int main(void){

04 - int a, b;

05 - printf("Digite o valor de A:");

06 - scanf("%d", &a);

07 - printf("Digite o valor de B:");

08 - scanf("%d", &b);

09 - if(a > b){

10 - printf("A > B\n");

11 - } else if(b > a){

12 - printf("B > A\n");

13 - } else {

14 - printf("A = B\n");

15 - }

16 - }


celsooliveirajr: O espaçamento da linha 4 à 15 estão certos?
mattheuos94: eu testei e funcionou perfeitamente
celsooliveirajr: Muito obrigado
fstolks: qual programa voces usam para testar?
ivaney57: qual programa voces usam para testar?
jonathanbrose82: DEV C++
jonathanbrose82: Tbmk penso que o problema está nas linhas 6 e 8, mas testando o algoritmo de jeito que foi apresentado na questão, funciona normalmente.
rws: O algoritmo não possui erro de sintaxe, por isso que compila e executa normalmente.
A inconsistência apresentada no algoritmo do enunciado, trata-se de erro de lógica.
Neste caso, o programador solicita para o usuário o valor de uma variável, mas na função responsável pela leitura do mesmo, referenciou o endereço de memória de outra.
rws: Lembrando que no enunciado original, na linha 01, a sintaxe está correta.
#include
Perguntas interessantes