[問題] C array 的問題??

看板C_and_CPP作者 (保佑)時間13年前 (2012/04/12 11:00), 編輯推噓1(107)
留言8則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 我練習用array的觀念寫一段小程式 輸入一個number 輸出會秀出有多少數字重複 沒有重複就秀no 例如: 輸入 12312312 輸出 1 出現3次 2 出現3次 3 出現2次 但我只要輸入超過10的數字 程式結果就會不對 以下是正常的code 就算把j[10] 和迴圈的b改大 也沒用 是哪裡出了錯呢? 程式碼(Code):(請善用置底文網頁, 記得排版) #include <stdio.h> #include <stdlib.h> #include <stdbool.h> int main(void) { int n,b,j[10]={0},k=0; printf("enter a number:"); scanf("%d",&n); while(n>0){ b=n%10; j[b]++; n/=10; } for(b=0;b<10;b++){ if(j[b]>1) printf("%d 出現 %d 次\n",b,j[b]); if(j[b]<2) k++; } if(k>9) printf("沒有數字重複\n"); system("PAUSE"); return 0; } 謝謝...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.243.1.141

04/12 12:01, , 1F
這跟迴圈還有陣列無關吧,直覺是你的int變數爆掉了。
04/12 12:01, 1F

04/12 12:02, , 2F
陣列為10只是存0~9這些數字重複的次數。迴圈也要這10個數字
04/12 12:02, 2F

04/12 12:02, , 3F
而已啊,我猜是你scanf那邊的問題。因為c的int有上限,你要
04/12 12:02, 3F

04/12 12:03, , 4F
自己check一下。
04/12 12:03, 4F

04/12 12:31, , 5F
這縮排好悲劇....
04/12 12:31, 5F

04/12 12:53, , 6F
你scanf直接把輸入的存到陣列內,int是有上限的
04/12 12:53, 6F

04/12 12:54, , 7F
不然就是你改用char[]
04/12 12:54, 7F

04/15 10:53, , 8F
直接用字元陣列來處理比較方便吧
04/15 10:53, 8F
文章代碼(AID): #1FXaKznT (C_and_CPP)