所以我一直通過科昌公司在C語言程序設計工作我的方式,我已經遇到了障礙就其內容的一個問題如下:Ç - 發行轉換用戶生成的數字變成文字
「寫程序從終端接收一個整數並提取並顯示英文整數的每個數字,所以如果用戶鍵入932,程序應該顯示以下內容:9 2 3(記住如果用戶輸入只是0.)「
我已經設法讓程序打印出數字作爲單詞,但不幸的是以相反的順序。從那裏,我認爲這可能是一個好主意,可以這麼說,但現在當我通過我的程序運行該值時,只打印「one one one ....」 in。
換句話說,最初我設法將932顯示爲「two three nine」,但是當我試圖通過我的程序反轉數字並運行239時,我只能得到「one one one」。
如果任何人有任何提示可以指向我正確的方向,將非常感謝!我的代碼如下:
#include <stdio.h>
int digitCount (int);
int reverseNumber (int);
int main(void)
{
//Chapter 6 Problem 6
int x, numberValue;
printf("Enter the number you'd like converted to words\n");
scanf("%i", &x);
numberValue = reverseNumber(x);
printf("The reverse is %i\n", numberValue);
do {
numberValue = numberValue % 10;
switch (numberValue) {
case 0:
printf("zero\t");
break;
case 1:
printf("one\t");
break;
case 2:
printf("two\t");
break;
case 3:
printf("three\t");
break;
case 4:
printf("four\t");
break;
case 5:
printf("five\t");
break;
case 6:
printf("six\t");
break;
case 7:
printf("seven\t");
break;
case 8:
printf("eight\t");
break;
case 9:
printf("nine\t");
break;
default:
break;
}
x = x/10;
} while (x != 0);
return 0;
}
int digitCount (int u)
{
int cnt = 0;
do {
u = u/10;
cnt++;
} while (u != 0);
return cnt;
}
int reverseNumber (int y)
{
int cnt, Rev;
cnt = digitCount(y); //returns number of digits
while (cnt != 0) {
Rev = Rev * 10 + y % 10;
y = y/10;
cnt--;
}
return Rev;
}
嘿,我們對此深感抱歉,我一定會在未來更多的描述。 – ImpurestClub
可能重複[如何從c中的數字中的最高有效數字開始獲取不同的數字](http://stackoverflow.com/questions/16967008/how-to-get-different-digits-starting-from-最重要的數字中的數字) – abelenky