Re: [問題] 面試考題
※ 引述《jack58 (願主陪著你)》之銘言:
: 之前做到一題面試考題
: 題目大概是將輸入一段數字
: ex: 567
: 將數字個別相加後直到剩下一位後輸出
: 567-> (5+6+7) 18 -> (1+8) 9
: 輸出9
今天我試著寫這一題..
用我破破的 C語言寫看看
int main()
{
char a[10];
int temp=0;
int j;
scanf("%s",a);
do{
j = strlen(a);
for(int i=0;i<j;i++)
{
temp+= (int)a[i];
}
sprintf(a,"%d",temp);
}while(temp < 9);
printf("%d",temp);
}
我覺得好奇怪 我這樣寫哪裡錯了..
輸入 567 卻輸出 162
我試著 把 printf("%d",(int)a[0]);
卻輸出 53..
我想應該是 因為 a[0] => 53 a[1] => 54 a[2] =>55
所以才會照成 162
我看到推文大大是說 用除了..
但我想用我這個方法..
請問我是哪裡觀念錯了...
初學C語言 有錯的地方
還希望大大能夠多多指教
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.250.16.36
→
08/10 16:23, , 1F
08/10 16:23, 1F
→
08/10 16:25, , 2F
08/10 16:25, 2F
→
08/10 16:26, , 3F
08/10 16:26, 3F
→
08/10 16:36, , 4F
08/10 16:36, 4F
感謝樓上們的講解 我寫出來了..
※ 編輯: joans 來自: 111.250.15.188 (08/10 18:10)
討論串 (同標題文章)