要求:
2念整數(5分)
題目內容:
你的程式要讀入一個整數,范圍是[-100000,100000]。然后,用漢語拼音將這個整數的每一位輸出出來。
如輸入1234,則輸出:
yi er san si
注意,每個字的拼音之間有一個空格,但是最后的字后面沒有空格。當遇到負數時,在輸出的開頭加上“fu”,如-2341輸出為:
fu er san si yi
輸入格式:
一個整數,范圍是[-100000,100000]。
輸出格式:
表示這個整數的每一位數字的漢語拼音,每一位數字的拼音之間以空格分隔,末尾沒有空格。
輸入樣例:
-30
輸出樣例:
fu san ling
時間限制:500ms記憶體限制:32000kb
代碼:
#include <stdio.h>
int place_value(int n)
{
int j = 1;
for (int i = 1;i < n;i++)
{
j *= 10;
}
return j;
}
int main(void)
{
int n, i, j = 0, t, m;
scanf("%d", &n);
if (n < 0)
{
printf("fu ");
n = n - n * 2;
}
m = n;
do
{
m /= 10;
j++;
} while (m > 0);
for (;j > 0;j--)
{
t = n / place_value(j);
switch (t)
{
case 0:
printf("ling");
break;
case 1:
printf("yi");
break;
case 2:
printf("er");
break;
case 3:
printf("san");
break;
case 4:
printf("si");
break;
case 5:
printf("wu");
break;
case 6:
printf("liu");
break;
case 7:
printf("qi");
break;
case 8:
printf("ba");
break;
case 9:
printf("jiu");
break;
default:
break;
}
if (place_value(j) > 1)
printf(" ");
n = n - t * place_value(j);
}
return 0;
}
代碼是往中國大學mooc上面上傳的。請問為什么第六十八行寫為:if (n > 9),提交之后某個用例就顯示輸出格式不對呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/277187.html
標籤:新手樂園
