该程序的工作是在一行上输出小于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
`
答案 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>