Informática, perguntado por carollopes0400paugyr, 11 meses atrás

Ler o preço de dois produtos e imprimir qual é o maior. Desconsidere empates.
Na linguagem c

Eu fiz assim:

int n1,n2;
printf ("digite o primeiro preço:");
scanf ("%i", &n1);
printf ("digite o segundo número:");
scanf ("%i", &n2);
if (n1>n2)
printf ("o primeiro é maior!");
if (n1<n2)
printf ("o segundo é maior!");

tem outra forma de fazer?

Soluções para a tarefa

Respondido por lamartinecezarpbm3x5
1

Sempre terá outras formas de fazer, desse jeito que você fez tá ótimo. Parabéns!

Irei fazer algumas observações, tenta corrigir. Realmente tente, pois só assim você entenderá melhor.

1 - Você esqueceu de colocar a condição de quando ele sejam iguais, caso isso ocorra não será exibido nenhum resultado e o programa finalizará.

2 - Como são preços de produtos é melhor você declarar  o n1, n2 como sendo float, pois assim aceita número decimais, caso contrário o programa exibirá erro.

Faz novamente e posta, assim posso te ajudar a entender melhor e podemos acrescentar outras condições.

O importante é sempre fazer, não importa se vai dá certo ou não. Só nunca desista, pois uma hora isso daí vai ser fichinha pra você.

: )




carollopes0400paugyr: como a questão pede pra desconsiderar empate eu não fiz! E eu coloquei float e coloquei número decimais mas ta dando errado
carollopes0400paugyr: obrigada!!!
lamartinecezarpbm3x5: Ok, quando for digitar o valores dos produtos não coloca vírgula, coloca ponto e testa, acho que funcionará. Ex: 2.50
carollopes0400paugyr: eu fiz isso, mas não deu certo
lamartinecezarpbm3x5: #include

int main()
{

float preco1, preco2;

printf("1° Preço: ");
scanf("%f",&preco1);
printf("2° Preço: ");
scanf("%f",&preco2);

if ( preco1 > preco2 )
{
printf("Preço um é maior do que preço dois.");
}
else
{
printf("Preço dois é maior do que preço um.");
}


return 0;
}
carollopes0400paugyr: pegou!!! eu tinha esquecido de trocar o %i para %f kkkkkkkkkkk
carollopes0400paugyr: obrigada
lamartinecezarpbm3x5: aahaha..acontece
Respondido por raissajrosinha
2

O jeito que cê fez tá super Ok. Só tem algumas questões aí.

1- Qnd cê usar numeros inteiros, para pegar a variável com o Scanf, usa %d e não %i. O %i lê o dado como hexadecimal e pode dar um problema no número digitado e o número armazenado.

2- Como já disseram, ao trabalhar com valores é interessante permitir números decimais. Então, ao invés de colocar int n1, n2; é preferível pôr float n1,n2;

ficaria:

float x, y;

    printf ("\nDigite o primeiro preço:");

    scanf ("%f", &x);

Se você quiser mostrar o preço, no printf fica:  printf ("%f", x);

obs: Quando for testar, coloca números com ponto (2.5 e não com vírgula 2,5).

3- É interessante você criar um If pra caso eles sejam iguais. Só por questão de cobrir todas as variáveis do seu sistema.

4- Não esquece de por as {} nos if's. Qnd você tem só um comando depois do If, realmente não é necessário, mas se tiver mais de um comando e você não pôr as chaves vai dar erro. É interessante tu pôr chaves sempre no início para pegar a prática. Depois tu vai abandonando elas as poucos.

5-Sobre outra forma de fazer, sempre há. Programação são infinitas possibilidades, mas sinceramente, essa é a mais tranquila e funciona, então tá suave demais.

6- Questão de estética: Pra pular linhas e não ficar tudo embaralhado, é legal pôr uns /n nos printf.

Vlw :)


lamartinecezarpbm3x5: Muito boas as dicas, gostei. É que deixei de programar em C faz muito tempo, só uso Python.
raissajrosinha: Somos dois kkkk faz uns 2 anos que nem olho C. Tô voltada pra web agora - JS, PHP (muito chato, deus me livre... mas o curso pede, fazer oq?) kkkkkk
lamartinecezarpbm3x5: kkkkkkk, pois é. Um saco.
Perguntas interessantes