c语言这道题怎么解呀

 我来答
碧海风云

2017-09-20 · 碧海风的秘密小据点!
碧海风云
采纳数:908 获赞数:10278

向TA提问 私信TA
展开全部

给题主一份 随机生成数列 然后 升序冒泡排序 的代码吧

#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;
}

运行结果

SSHHFF凤
2017-09-20 · TA获得超过1688个赞
知道小有建树答主
回答量:799
采纳率:83%
帮助的人:307万
展开全部

编个程序来解答。以下是在手机上用易历知食软件里的微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;
   }
  }
 }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2017-09-20 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.7亿
展开全部
#include<stdio.h>
int main()
{int n,i,j,t;
 scanf("%d",&n);
 int a[n];
 for(i=0;i<n;i++)
  scanf("%d",&a[i]);
 printf("\n");
 for(i=0;i<n-1;i++)
  for(j=0;j<n-1-i;j++)
   if(a[j]>a[j+1])
   {
    t=a[j]; a[j]=a[j+1]; a[j+1]=t;
   }
 for(i=0;i<n;i++)
     printf("%d ",a[i]);
 printf("\n");
 return 0;
}


追问
谢谢你😊真的帮了大忙了
追答
满意请采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式