没有报错
#include
#include
#include
#include
#include
#include
void wash(int a[54]);
int main()
{
int a[54];
for(int i=0;i++;i<54)
{
a[i]=i+1;
}
wash(a);
}
void wash(int a[54])
{
srand(time(NULL));
for(int i=0;i<54;i++)
{
int x;
int flag=1;
srand(time(NULL));
while(flag)
{
x=rand()%10;
if(x<55&&x>i)
{
a[x]=a[i]+a[x];
a[i]=a[x]-a[i];
a[x]=a[x]-a[i];
flag=0;
}
}
}
for(int i=0;i<55;i++)
{
printf("%d",a[i]);
}
}
while 死循环出不来了,x=rand()%10 得出 x 的值范围是 0 ~ 9,而当 i > 9 后,26行的 x<55 && x>i 条件永远无法满足,flag 变不为0,无法退出 while 循环。
我改成了%100,程序能输出了,但是输出不对,请您帮我看看什么原因,应该是数组第一次遍历的时候出了问题
不知道你这个问题是否已经解决, 如果还没有解决的话: