求c语言大神随机产生25个100以内的正整数放入数组中,对其数组升序排序后,输出这25个整数(每行
随机产生25个100以内的正整数放入数组中,对其数组升序排序后,输出这25个整数(每行10个),再输入一个整数m,要求按原来的排序规律将它插入数组中,输出所得的数组(每行10个)。
完整的程序参考(都是基础的算法,没考虑用函数)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int m,a[26],i,j,t;
time_t ti;
srand((unsigned) time(&ti)); //初始化随机函数
for(i=0; i<25; i++)
a[i]=rand()%100 ;//得到随机数
//(冒泡法)
for(i=0; i<25-1; i++) //10个元素完成排序需经历9趟
for(j=0; j<25-1-i; j++) //第i趟最多需要经历9-i次交换工作
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0; i<25; i++)
{
printf("%d",a[i]); ///输出
if ((i+1)%10)
printf(" ");
else
printf(" ");
}
printf(" ");
scanf("%d",&m); //输入m
if (m>=a[24])
a[25]=m;
else
for(i=0; i<25; i++)
{
if (a[i]>=m) //找到插入位置
{
for(j=25; j>i; j--) //当前开始数据右移一个
a[j]=a[j-1];
a[i]=m; //插入
break;
}
}
for(i=0; i<26; i++)
{
printf("%d",a[i]); ///输出
if ((i+1)%10)
printf(" ");
else
printf(" ");
}
printf(" ");
return 0;
}