c語言給一個不多于5位的正整數,要求求出它是幾位數
2022-11-01 00:54:05
來源: 編輯:

關于c語言給一個不多于5位的正整數,要求求出它是幾位數這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現在讓我們一起來看看吧!
1、不對的原因,主要是if條件語句應該是用“==”而不是“=”,這是判斷,不是賦值。
2、其它的錯誤,scanf_s("%d",&a)改成scanf("%d",&a),printf用錯了,printf打印應該是一個占位符對應一個要輸出的內容,就是你代碼中%d對應一個輸出。
3、修改后的代碼:#includeint main(){int a, b, c, d, e, f, w;printf("輸入一個不多于五位的整數:");scanf("%d",&a);//第一問,求出它是幾位數b = 10000 - a;c = 1000 - a;d = 100 - a;e = 10 - a;f = 0 - a;while (a < 0 || a > 99999)printf("輸入錯誤,請重新輸入");if (b < 0){printf("a是五位數");w = 5;}else if (c < 0){printf("a是四位數");w = 4;}else if (d < 0){printf("a是三位數");w = 3;}else if (e < 0){printf("a是兩位數");w = 2;}else if (f < 0){printf("a是個位數");w = 1;}elseprintf("輸入錯誤,請重新輸入");//第二問,分別輸出每一位數字if (w == 5)printf("%d %d %d %d %d", a / 10000, a / 1000 % 10, a / 100 % 10, a / 10 % 10, a % 10);if (w == 4)printf("%d %d %d %d", a / 1000 % 10, a / 100 % 10, a / 10 % 10, a % 10);if (w == 3)printf("%d %d %d", a / 100 % 10, a / 10 % 10, a % 10);if (w == 2)printf("%d %d", a / 10 % 10, a % 10);if (w == 1)printf("%d", a % 10);//第三問,按逆序輸出各位數字if (w == 5)printf("%d %d %d %d %d", a % 10, a / 10 % 10, a / 100 % 10, a / 1000 % 10, a / 10000);if (w == 4)printf("%d %d %d %d", a % 10, a / 10 % 10, a / 100 % 10, a / 1000 % 10);if (w == 3)printf("%d %d %d", a % 10, a / 10 % 10, a / 100 % 10);if (w == 2)printf("%d %d", a % 10, a / 10 % 10);if (w == 1)printf("%d", a % 10);}修正后的代碼執(zhí)行如下:。
本文分享完畢,希望對大家有所幫助。
標簽:
免責聲明:本文由用戶上傳,與本網站立場無關。財經信息僅供讀者參考,并不構成投資建議。投資者據此操作,風險自擔。 如有侵權請聯(lián)系刪除!