3) 定义一个可以存放 20 个整型数元素的一维整型数组rArray,用随机数生成函数(参考Lab Assessment 3 )生成
20 个1-50 之间的随机整数,并把它们存放在该整型数组中。
4) 定义一个可以存放 51 个字符元素的一维字符型数组cArray,并将其全部初始化为数值0。
5) 按照数组 rArray 下标顺序在屏幕上输出数组中的这20 个随机整数。并按照数组下标顺序在屏幕上显示出这15
个随机整数的棒图。最简单的棒图可以用显示’*’的数量来表示,例如,若随机整数是13,则在一行中显示13 个’*’;
也可以首先将13 个’*’写入字符型数组cArray,然后使用字符串形式显示出来。
6) 等待键盘输入回车键。然后进行下面的过程:
7) 用冒泡排序算法对这20 个随机数按照由大到小的顺序排序,将排序结果存放到原数组之中。
8) 按照排序后的数组下标顺序,在屏幕上输出数组中的这 20 个随机整数。同时在屏幕上显示出已经排序后的数组
的棒图。
9) 等待键盘输入回车键。然后进行下面的过程:
2
10) 用选择排序算法在再对上述20 个数按照由小到大的顺序排序,将排序结果存放到原数组之中。
11) 按照排序后的数组下标顺序,在屏幕上输出数组中的这20 个随机整数。同时在屏幕上显示出已经排序后的数
组的棒图。
大神顺便把运行结果截图给我好吗?可以的话,追加流程图,可以多给分。
void showData(int rArray[],int n)
{
int i;
for(i=0; i<n; i++)
{
printf("%-3d",rArray[i]);
}
printf("\n");
int j;
for(i=1; i<51; i++)
{
for(j=0; j<n; j++)
{
if(rArray[j] >= i)
printf("* ");
else
printf(" ");
}
printf("\n");
}
printf("\n");
}
void selectSort(int array[],int length,int type) //-1 小到大 1 大到小
{
for(int i=0;i<length-1;i++)
{
int index=i;
for(int j=i+1;j<length;j++)
{
if(type < 0)
{
if(array[j]<array[index])
{
index=j;
}
}
if(type > 0)
{
if(array[j]>array[index])
{
index=j;
}
}
}
if(i!=index)
{
int temp = array[index];
array[index]=array[i];
array[i]=temp;
}
}
}
int main(int argc, const char * argv[])
{
srand(time(NULL));
int rArray[20];
int i;
for(i=0; i<20; i++)
{
rArray[i] = rand()%50 + 1;
}
showData(rArray,20);
selectSort(rArray,20,-1);
showData(rArray,20);
selectSort(rArray,20,1);
showData(rArray,20);
return 0;
}
追问= =很好很强大,但是我要的是C++诶。
本回答被提问者采纳