看板 C_and_CPP 關於我們 聯絡資訊
Environment : winXP sp2,Code:Block 10.5,gcc 4.4.1 sample code ============================================================= #include <stdio.h> #include <stdlib.h> int main() { char src[12] = {0}; int temp = 0; int cnt = 0; int i = 0; scanf("%s",src); for (;;){ cnt = strlen(src); if (cnt < 2){ break; } temp = 0; for (i=0;i<cnt;i++){ temp += src[i] - '0'; //重點 } sprintf(src,"%d",temp); } printf("result = %s",src); return 0; } input : 454 output : 4 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.64.95
joans:謝謝 我寫出來了 08/10 18:10
xatier:其實sprintf()的回傳值就是src的長度, 可以少做一次strlen 08/11 07:23
xatier:順帶一提, printf()回傳的東西是"印出來的資料"的長度 08/11 07:24
xatier:然後temp += (src[i] - '0'); //加個括號是個好做法 08/11 07:25