1.数値の合計を計算します
分析:nの桁数がわからないため、 n = n / 10; n%10を使用して各桁を数えることができます
1 #include <stdio.h> 2 3 int main() 4 { 5 int n; 6 int sum = 0 ; 7 scanf(" %d "、&n); 8 while(n> 0 ) 9 { 10 sum = sum + n%10 ; 11 n = n / 10 ; 12 } 13 printf(" %d " 、sum); 14は 0を返し ます。 15 }
第二に、高度なバージョン:
正の整数nを読み取り、 その桁の合計を計算し、合計の各桁を中国語のピンインで書き込みます。
入力形式:各テスト入力には1つのテストケースが含まれ、自然数nの値を提供 します。ここで、nが1未満 であることを確認し ます。
出力形式:nの数字の合計の各数字が 1行に出力されます。ピンインの数字の間にスペースが1つありますが、行 の最後のピンインの数字の後にスペースはありません。
入力例:1234567890987654321123456789
出力例:yi san wu
分析:数値が大きすぎるため、使用できるのは文字列のみです。
注:文字列の数値は数値に変換されます:-'0 ';ターミネーター:' \ 0 '
1 #include <stdio.h> 2 #define N 100 3 #define M 5 4 int main() 5 { 6 int sum = 0、i = 0 、j; 7 char hz [ 10 ] [ 5 ] = { " ling "、" yi "、" er "、" san "、" si "、" wu "、" liu "" qi "、" ba "、" jiu " }; 8 文字sr [N]; 9 int cs [M]; 10 のために(私は= 0を I ++; I <M ) 11 - CS [I] = 1 。 12 scanf(" %s " 、sr); 13 i = 0 ; 14 while(sr [i]!= ' \ 0 ' ) 15 { 16 sum + = sr [i]- ' 0 '; 17 i ++ ; 18 } 19 j = 0 ; 20 while(sum> 0 ) 21 { 22 cs [j] = sum%10 ; 23 sum = sum / 10 ; 24 j ++ ; 25 } 26 for(i = M- 1 ; i> = 0 ; i -- ) 27 { 28 if(i == 0 ) 29 { 30 printf("%s " 、hz [cs [i]]); 31 32 } else { 33 printf(" %s " 、hz [cs [i]]); 34 } 35 } 36 37 return 0 ; 38 39 }