c++输出10个不同10之内的数字,大家帮忙看下程序,谢谢
这个是我写的程序,是没问题的。
void main()
{
int num[10],n = 0;
srand(time(0));
num[0] = rand()%10;
n++;
while (n<10)
{
int a =rand()%10,i;
for (i = 0;i<n;i++)
{
if (num[i] ==a)
{
break;
}
}
if (num[i] == a)
{
continue;
}
else
{
num[n] = a;
n++;
}
}
但是,我想引入一个开关变量,修改如下,就出现问题了,还望大家帮忙指正下啊,谢谢
void main()
{
int num[10],n = 0;
srand(time(0));
num[0] = rand()%10;
n++;
int sw = 0;//引入的开关变量
while (n<10)
{
int a =rand()%10,i;
for (i = 0;i<n;i++)
{
if (num[i] ==a)
{
sw = 1;
break;
}
}
//if (num[i] == a)//
//{
continue;//
//} //引入开关变量之后,这几行就作废了啊
if(!sw)//这里修改为这样
{
num[n] = a;
n++;
}
}
可是修改后,程序运行显示没有东西,,大家帮看下啊,谢谢
[解决办法]
void main(){ int num[10],n = 0; srand(time(0)); num[0] = rand()%10; n++; int sw = 0;//引入的开关变量 while (n<10) { int a = rand()%10,i; sw = 0; for (i = 0;i<n;i++) { if (num[i] ==a) { sw = 1; break; } } //if (num[i] == a)// //{ //continue;// //} //引入开关变量之后,这几行就作废了啊 if(!sw)//这里修改为这样 { num[n] = a; n++; } }}
[解决办法]
+++
if(!sw)用了中文符号,要修改一下
continue要注意注释掉
sw标记在每次循环开始时要初始化为0;不能标记起过一次作用之后就一直作用下去。