程序的工作是在一行上输出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