程序的工作是在一行上輸出k小於n的所有非負倍數,並使用3個不同的循環執行三次(按此順序:while,for ,do-while)。每個樹時間,倍數(如果有多個)以逗號分隔,在第一個數字之前或最後一個數字之後沒有逗號。 你的程序的一個例子的運行還不如去:循環幫助正確輸出倍數
0,5,10,15,20,25,30,35
0,5,10,15,20, 25,30,35
0,5,10,15,20,25,30,35
我是第一次編程的學生,這是我上的Visual Studio 2012年的任務之一,我掙扎與所有循環,迄今已寫出2(while循環,for循環)。我的兩個循環都輸出了#,這些都沒有問題,我的輸出語句中的逗號的位置也沒有。我的程序的運行:
,0,1,6,31
0,10,60
我的代碼:
#include <iostream>
#include <string>
using namespace std;
bool die (const string msg);
void recover();
int main(){
unsigned k, n;
cout <<"Input 2 #'s: " <<endl;
cin >>k >>n || die("Input Failure");
if (k == 0 || n == 0) die("Number Can't Be 0");
unsigned i = 0;
while(i < n){ //
cout <<" ," <<i;
i *= k;
i++;
}
cout <<endl;
for(i = 0; i < n; i++){
recover;
i *= k;
cout <<i <<" ,";
}
cout <<endl;
} // main
`
提示:你可以將系列改寫爲0,0 + 5,5 + 5,10 + 5等等。 – molbdnilo 2014-10-05 22:19:15
編程的第一條規則:*把問題分解成更簡單的問題。*起初不要擔心逗號,只需要正確地得到數字。你需要幫助的三個循環中的哪一個? – Beta 2014-10-05 22:24:01
老實說,我需要所有人的幫助,但讓我們從while循環開始,也許我會從那裏學習。我也嘗試替換i * = k;與i + = k(如建議),但產出也是錯誤的。 – 2014-10-05 22:38:34