2014-10-05 38 views
0

程序的工作是在一行上输出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,0 + 5,5 + 5,10 + 5等等。 – molbdnilo 2014-10-05 22:19:15

+0

编程的第一条规则:*把问题分解成更简单的问题。*起初不要担心逗号,只需要正确地得到数字。你需要帮助的三个循环中的哪一个? – Beta 2014-10-05 22:24:01

+0

老实说,我需要所有人的帮助,但让我们从while循环开始,也许我会从那里学习。我也尝试替换i * = k;与i + = k(如建议),但产出也是错误的。 – 2014-10-05 22:38:34

回答

0

你知道该系列应该是

0, 5, 10, 15, 20, 25, 30, 35 

我们会做while循环。在英语中,用“while”表示,程序将是“从0开始,然后只要低于40,就增加5”。

unsigned i = 0; // start with 0 
while(i < n){  // as long as it's below 40 
    cout <<" ," <<i; 
    i += k;   // increase by 5 
} 
cout <<endl; 

为了得到正确的逗号,我们必须将第一个数字或最后一个作为特殊情况。也就是说,我们必须在每个数字之前加上“,”,但在第一个数字之前,或者在每个数字之后,但在最后一个之后。首先是更容易一些:

unsigned i = 0; // start with 0 
while(i < n){  // as long as it's below 40 
    if(i > 0) 
    cout <<" ,"; 
    cout << i; 
    i += k;   // increase by 5 
} 
cout <<endl; 

这应该足以让你开始。当您尝试使用do-while时,如果开头和结尾的数字不完全正确,请逐页浏览纸上的循环 - 您必须按照正确的操作顺序进行操作。对于for,你有三个不同的参数可供使用,初始值,结束条件和步​​长,所以只需要玩弄它们,直到你看到如何让它给你你想要的序列。

+0

真的很感激!我不知道为什么我觉得有必要让“i ++”搞砸了这一切。再次感谢,让我们知道如果我遇到其他循环的麻烦。 – 2014-10-06 00:33:48

+0

如何为do-while循环获得适当的逗号分配?这是我迄今为止的代码: if(i> 0){ i = 0; do { cout <<“,”; cout << i; i + = k;} while(i 2014-10-06 17:24:04

+0

@BoyWonder:思考一下,不要只是把代码放在一起。为了在第一个数字前省略逗号,有条件的'if(i> 0)'应该控制部分代码。 – Beta 2014-10-06 19:30:55