怎样用C语言产生1000个随机数,并用冒泡排序法排序并记录处理次数。是新手,有讲解更好

要代码…

如下:

#include<stdio.h>

#include<stdlib.h>

int main ()

{

int i,j,a[1000],n=0;

for(i=0;i<1000;i++)

a[i] = rand()%3000+1;     //产生随机数(3000以内的)

for(i=0;i<1000;i++)

{

for(j=i+1;j<1000;j++)

{

if(a[i]>a[j])       //交换

{

int temp=a[i];

a[i]=a[j];

a[j]=temp;

n++;

}

}

if(i%15==0)

printf("\n");

printf("%d ",a[i]);

}

printf("\n次数:%d\n",n);

return 0;

}

rand()是产生随机数的函数;需包含头文件#include<stdlib.h>

rand()%3000+1  是产生1~3000的整数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-08
我是用手机上的网,用手机敲了半天代码没敲完,实在不耐烦了就删了,我就讲一下思路吧 先用for语句循环1000次,每次调用随机数生成库函数初始化一整数数组。然后对该数组进行冒泡排序并在冒泡排序函数里对负责交换两个数的语句后计数对交换次数进行统计最后输出已排好序的数组和统计数字就完了。
第2个回答  2011-09-08
#include<stdio.h>
#include<stdlib.h>

int main ()
{
int i,j,a[1000],n=0;
for(i=0;i<1000;i++)
a[i] = rand()%3000+1; //产生随机数(3000以内的)
for(i=0;i<1000;i++)
{
for(j=i+1;j<1000;j++)
{
if(a[i]>a[j]) //交换
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
n++;
}
}
if(i%15==0)
printf("\n");
printf("%d ",a[i]);
}
printf("\n次数:%d\n",n);
return 0;
}

rand()是产生随机数的函数;需包含头文件#include<stdlib.h>
rand()%3000+1 是产生1~3000的整数。本回答被提问者采纳
第3个回答  2011-09-08
用C语言产生一个随机数可以使用srand或者rand函数产生,冒泡法可以从网上查找到,想记录处理的次数可以另设一个变量每处理一次加1就可以了