循环帮助正确输出倍数

时间:2014-10-05 22:11:00

标签: c++ loops for-loop while-loop do-while

该程序的工作是在一行上输出小于n的所有k的非负数倍,并使用3个不同的循环执行三次(按此顺序:while,for,做什么)。每个树时间,倍数(如果有多个)都用逗号分隔,在第一个数字之前或最后一个数字之后没有逗号。 您的程序的示例运行可能如下:

5 40

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循环)。我的两个循环输出#' s,我的输出语句中的逗号位置也没有。运行我的程序:

5 40

,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

`

1 个答案:

答案 0 :(得分: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,您可以使用三个不同的参数,初始值,结束条件和步​​长,所以只需使用它们,直到看到如何使它为您提供所需的序列。 / p>