![]() |
#2
rjsp2012-05-23 08:35
|

#include <iostream>
#include <time.h>
using namespace std;
#define max 7
int main()
{
int i(0),j,k,l(1),a[max];
srand((unsigned)time(NULL));
k=rand()%max;
a[i]=k;
k=rand()%max;
while (i!=max)
{
for(j=0;j<=i;j++)
{
if(k==a[j])
l=0;
}
if(l)
{
i++;
a[i]=k;
}
l=1;
k=rand()%max;
}
for(i=0;i<max;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 1;
}
产生0-max的整数(重复产生的会被删除),调试表明是for循环出了问题,但我想了很久想不通为什么for循环会是死循环,求解。 #include <time.h>
using namespace std;
#define max 7
int main()
{
int i(0),j,k,l(1),a[max];
srand((unsigned)time(NULL));
k=rand()%max;
a[i]=k;
k=rand()%max;
while (i!=max)
{
for(j=0;j<=i;j++)
{
if(k==a[j])
l=0;
}
if(l)
{
i++;
a[i]=k;
}
l=1;
k=rand()%max;
}
for(i=0;i<max;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 1;
}