Programme C le plus grand chiffre d’un nombre

la programmation


j’ai écrit un programme qui imprime le plus grand chiffre d’un nombre

#include <stdio.h>
int main(){
    int num ,  large = 0, rem = 0;
    scanf("%d" , &num);
    while (num > 0) {
                rem = num % 10;

                if (rem > large) {
                        large = rem;
                }

                num = num / 10;
        }

        printf("the biggest digit is %d\n", large);
        return 0;
  }

si cela fonctionne bien, mais si je saisis un nombre négatif, disons -432, cela m’imprime 0, au lieu de 4. Comment puis-je corriger cela ?

Ce que j’ai essayé :

…………………………………

Solution 1

C++
while (num > 0)

Cela échouera pour les nombres inférieurs à 0. Convertir en nombre absolu avant le test le corrigera :

C++
num = abs(num);
while (num > 0)

Solution 2

Bonjour
Tout d’abord, vous devez mettre WHILE sur IF(num>=0), puis vous devez rendre votre nombre positif dans ELSE. par exemple, je fais (num=num-2*(num);) ceci. ça marche pour moi. vous pouvez absolument mieux écrire cela avec des fonctions.

C++
#include<stdio.h>
int main()
{
    int num,r=0,max=0;
    scanf("%d",&num);
    if(num>=0)
    {
        while(num>0)
        {
            r=num%10;
            if(r>=max)
            {
                max=r;
            }
            num=num/10;
        }
    }
    else
    {
        num=num-2*(num);
        while(num>0)
        {
            r=num%10;
            if(r>=max)
            {
                max=r;
            }
            num=num/10;
        }
    }
    printf("%d",max);
    return 0;
}

コメント

タイトルとURLをコピーしました