[問題] 數數字

看板C_and_CPP (C/C++)作者 (湯飯)時間16年前 (2009/12/29 23:09), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/1
餓死抬頭 做一個數數字的作業 原始碼 #include <stdio.h> #include <stdlib.h> #define max 255 int main() { char word[max]; int num[9]; int i,j; gets(word); for(j=0;j<=9;j++) { num[j]=0; } for(i=0;i<=max;i++) { if(word[i]>47&&word[i]<58) { for(j=0;j<=9;j++) { if(word[i]==(j+48)) { num[j]=num[j]+1; } } } } for(j=0;j<=9;j++) { printf("[%d]= %d ",j,num[j]); } printf("\n"); system("PAUSE"); return 0; } 運行後的問題是數不會錯,可是會多東西,0多3個,9多1個 還有一個好像會亂跑? 實在是不知道問題出在哪只好將問題丟給各位 難不成鬧鬼了XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.220.44

12/29 23:13, , 1F
在數的地方,數到strlen(word)就好,不要全部數完試試看
12/29 23:13, 1F

12/29 23:16, , 2F
沒錯耶!! 可是為什麼呢?
12/29 23:16, 2F

12/29 23:35, , 3F
很多 <= 都是錯的, 開 [9] 只能用到 0~8, [max] 的也一樣
12/29 23:35, 3F

12/29 23:35, , 4F
寫超過陣列界限, 就會把其它地方的資料寫壞
12/29 23:35, 4F
文章代碼(AID): #1BEXkhAJ (C_and_CPP)
文章代碼(AID): #1BEXkhAJ (C_and_CPP)