![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
c语言这道题怎么解呀
3个回答
展开全部
给题主一份 随机生成数列 然后 升序冒泡排序 的代码吧
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define elemType int /*元素类型*/
#define LEN 100 /*数组长度上限*/
#define ASC 0 /*升序*/
#define DESC 1 /*降序*/
/*生成n项min~max范围的随机数并存入数组randArr*/
void randomArray (elemType randArr[LEN], int n, elemType min, elemType max) {
int i;
srand ((unsigned)time(NULL)); /*用时间做种,每次产生随机数不一样*/
for (i=0; i<n; i++)
randArr[i] = rand() % (max-min+1) + min; /*产生min~max的随机数*/
}
/*冒泡排序*/
/*参数说明:*/
/*elemType arr[]:排序目标数组*/
/*int len:元素个数*/
/*int order:排序方式;升序(由小到大):ASC;降序(由大到小):DESC*/
void bubbleSort (elemType arr[], int len, int order) {
int i, j, temp;
for (i = 0; i < len - 1; i++)
for (j = 0; j < len - 1 - i; j++) {
if (order == ASC) { /*升序*/
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
else if (order == DESC) { /*降序*/
if (arr[j] < arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
/*打印数组*/
void printArr (elemType arr[], int len) {
int i;
for (i=0; i<len; i++)
printf ("%d\t",arr[i]);
putchar ('\n');
}
int main (void) {
elemType arr[LEN];
int len;
len = 10;
puts ("初始数组:");
randomArray (arr, len, -10, 10); /*随机生成数组内容*/
printArr (arr,len);
putchar ('\n');
puts ("升序排列:");
bubbleSort (arr, len, ASC); /*升序冒泡排序*/
printArr (arr,len);
putchar ('\n');
getch (); /*屏幕暂留*/
return 0;
}
运行结果
展开全部
编个程序来解答。以下是在手机上用易历知食软件里的微C程序设计来编的一个示例,手机上的代码如下:
运行结果如下:
完整代码:
#include <stdio.h>
void BubbleSort( int *d,int n);
void main()
{
int d[10],i;
printf("请输入10个整数(空格相隔)\n");
scanf("%d %d %d %d %d %d %d %d %d %d ",
&d[0],&d[1],&d[2],&d[3],&d[4],
&d[5],&d[6],&d[7],&d[8],&d[9]);
BubbleSort(d,10);
printf("10个整数升序排序后是:\n");
for (i = 0;i < 10;i++){
printf("%d ",d[i]);
}
}
void BubbleSort( int *d,int n){
int i,j,temp;
for (i = 0;i < n;i++){
for(j = i+1;j < n;j++){
if (d[i] > d[j]){
temp = d[i];
d[i] = d[j];
d[j] = temp;
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
追问
谢谢你😊真的帮了大忙了
追答
满意请采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询