看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 有一段式子,我想用 for 讓它能連續輸入, 但是若寫成 for 似乎會卡在迴圈中, 但若我只輸入一個值去跑,又沒問題, 所以想請教一下應該如何改才好, 謝謝。 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ 有問題的code: (請善用置底文標色功能) #include<iostream> #include<iomanip> #define LEN 100 using namespace std; int is_prime( int n)//測試是否為質數 { int i; for( i = 2 ; i <= n - 1 ; i++ ) if( n % i == 0) return 0; return 1; } int main() { int n; // m <= n < 99 int i; cin >> n; int a[2][LEN]; for ( i = 0 ; i < LEN ; i++ ) { a[0][i] = 0;//初始化 a[1][i] = 0;//初始化 } for ( i = 0 ; i < LEN ; i++ ) if( is_prime(i) ) a[0][i] = i; //把質數的位置標出來 int m=20; //此處如果我想改成下面用for連續輸入,會卡迴圈 //for( m = 2 ; m <= n ; m++ ) { do { if (m == 1) //如果置換後m的值為1就跳出 break; for ( i = 2 ; i <= m ; i++) { int k = m % i; //計算餘數 if (k == 0) //如果餘數=0 { m /= i; //就將m重設成商 a[1][i] += 1; //把結果記錄起來 break; } } } while( m > 0 ); } for ( i = 0 ; i < n ; i++ ) cout << a[0][i] << setw(3) << setw(10) << a[1][i] << "\t" << endl; system("pause"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.93.234 ※ 編輯: Cidolfas 來自: 219.85.93.234 (08/19 12:13)
scwg:don't use m as outer loop counter since you modify it 08/19 12:16
scwg:inside the loop body. 08/19 12:17
Cidolfas:感激,問題解決! 08/19 12:21