Analyze whether the number is even or odd, and which of the numbers is higher

Asked

Viewed 54,285 times

0

O problema é esse.

setlocale(LC_ALL,"Portuguese");

int num1,num2;

printf("\nInforme os números: ");
scanf ("%i""%i",&num1,&num2);

if (num1 % 2 == 0){
    printf ("\nO número %i é par e",num1);
}else {
    printf("\nO número %i é impar e",num1);
}
if (num1>num2){
    printf (" é o número é o maior");
}else {
    printf(" é o número é o menor");
}



if (num2 % 2 == 0){
    printf ("\nO número %i é par e",num2);
}else {
    printf("\nO número %i é impar e"),num2;
}
if (num2>num1){
    printf (" é o número é o maior");
}else {
    printf(" é o número é o menor");
}

When I put 2 and 3 of an error in 3 and it shows several random numbers but the result is correct, already when I put 4 and 6 it says that 4 is even, could tell me what I’m doing wrong ?

  • 1

    Hello, Luan. Avoid tagging with C++ problems in C. They are two very different languages. Also avoid using images to describe your problem. The use of images makes it difficult to search and makes it impossible for users of screen readers to read. Do our [tour] to get better acquainted with the site if you haven’t done.

  • Thank you for your knowledge master, the young padawan here received you and will practice you !

2 answers

2

In the instruction where you display the variable num2 when it is odd there was an error in function call print(), see where I’ve changed:

#include <stdio.h>

int main(void)
{

    int num1,num2;

    printf("\nInforme os números: ");
    scanf ("%i""%i",&num1,&num2);

    if (num1 % 2 == 0){
        printf ("\nO número %i é par e",num1);
    }else {
        printf("\nO número %i é impar e",num1);
    }
    if (num1>num2){
        printf (" é o número é o maior");
    }else {
        printf(" é o número é o menor");
    }



    if (num2 % 2 == 0){
        printf("\nO número %i é par e",num2);
    }else {
        printf("\nO número %i é impar e",num2); //<----- mudei qui
    }
    if (num2>num1){
        printf (" é o número é o maior");
    }else {
        printf(" é o número é o menor");
    }

    return 0;
}

The way I was bringing garbage, all I had to do was rewrite this routine to:

printf("\nO número %i é impar e",num2);

This makes it possible to check the validation result.

  • Dear God, I’m so unaware, vlw haha

0

It is possible to greatly simplify your code, see only:

#include <stdio.h>
#include <stdlib.h>

#define eh_par( n )      ( ( n % 2 ) ? 0 : 1 )
#define comparar( a, b ) ( ( a == b ) ? 0 : ( ( a > b ) ? 1 : -1 ) )

int main( int argc, char * argv[] )
{
    int a = 0;
    int b = 0;

    printf("a: ");
    scanf( "%d", &a );

    printf("b: ");
    scanf( "%d", &b );

    switch( comparar( a, b ) )
    {
        case -1: printf( "%d eh menor que %d\n", a, b ); break;
        case  0: printf( "%d eh igual a %d\n", a, b ); break;
        case  1: printf( "%d eh maior que %d\n", a, b ); break;
    }

    printf("%d eh um numero %s\n", a, eh_par(a)?"PAR":"IMPAR" );
    printf("%d eh um numero %s\n", b, eh_par(b)?"PAR":"IMPAR" );

    return 0;
}

/* fim-de-arquivo */

Exit:

$ ./teste
a: 5
b: 8
5 eh menor que 8
5 eh um numero IMPAR
8 eh um numero PAR

$ ./teste
a: 9
b: 4
9 eh maior que 4
9 eh um numero IMPAR
4 eh um numero PAR

$ ./teste
a: 5
b: 5
5 eh igual a 5
5 eh um numero IMPAR
5 eh um numero IMPAR

I hope it helps!

  • What if I say that people have spent 6 or more " if " ? kkkkkkkk

  • Vlw, I’ll study case / switch

Browser other questions tagged

You are not signed in. Login or sign up in order to post.