本人小白,使用vs2015。用电脑运行一下代码时,无法输出循环的内容,用手机安装的编译器却可以。
代码:
#include<iostream>
using namespace std;
int main()
{
int sum;
int number;
int i;
int a, b;
int sum1;
string p = "___";
cout << "输入题目数:";
cin >> number;
cout << "四则运算题目数:" << number << endl;
for (i = 0; i<number; i++)//控制程序的题目数
{
a = rand() % 1000;//产生随机数
b = rand() % 10;
sum = a / b;
sum1 = a % b;
if (a == 0 || b == 0 || b == 1 || a <= 40)
{
continue;
}
else if (sum1 == 0)
{
cout << a << "÷" << b << "=" << sum << endl;
}
else
{
continue;
}
}
return 0;
}
int sum1;
这里的分号应该是英文的;
sum=a/b;
这一句有可能b=0所以会报错
rand()函数是不是需要把系统时间设置为种子?不然你每次产生的都是相同的式子。
下面的代码我在你的代码的基础上修改的:
#include<iostream>
#include<cstring>
#include<ctime>
using namespace std;
int main()
{
int sum;
int number;
int i;
int a, b;
int sum1;
string p = "___";
cout << "输入题目数:";
cin >> number;
cout << "四则运算题目数:" << number << endl;
srand(time(NULL));
for (i = 0; i < number; i++)//控制程序的题目数
{
a = rand() % 1000;//产生随机数
b = rand() % 10;
/*sum = a / b;
sum1 = a % b;*/
if (a != 0 && b != 0 && b != 1 && a > 40 && a % b == 0) {
sum = a / b;
cout << a << "÷" << b << "=" << sum << endl;
}
else i--;//假如不符合要求那么这一次循环就不算,所以i--,这样就保证一定可以输出number个。
//如果没有i--,可能运气不好,重复number次一个式子都不符合,那就输出不了。
/*if (a == 0 || b == 0 || b == 1 || a <= 40)
{
continue;
}
else if (sum1 == 0)
{
cout << a << "÷" << b << "=" << sum << endl;
}
else
{
continue;
}*/
}
return 0;
}
我也是c++新手,希望我的回答能帮助到你
for (i = 0; i<number; i++) //控制程序的题目数
你在循环的内部把number 和其他值打印出来看看,有什么变化。
cout << “number:" << number << endl;