Program C digit terbesar dari sebuah angka

pemrograman


saya menulis sebuah program yang mencetak digit terbesar dari suatu angka

#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;
  }

jika berfungsi dengan baik tetapi jika saya memasukkan angka negatif katakanlah -432 saya akan mencetak 0, bukan 4. Bagaimana cara memperbaikinya?

Apa yang saya coba:

………………………………….

Solusi 1

C++
while (num > 0)

Ini akan gagal untuk angka yang kurang dari 0. Konversikan ke angka absolut sebelum pengujian akan memperbaikinya:

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

Solusi 2

Halo
Pertama-tama, kamu harus meletakkan WHILE pada IF(angka>=0), lalu kamu harus menjadikan bilanganmu positif di ELSE. misalnya, saya melakukan (num=num-2*(num);) ini. itu berhasil untuk saya. tentu saja Anda dapat menulis ini dengan lebih baik dengan fungsi.

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をコピーしました