求c语言编程题,谢谢各位大神。输入正整数n,再输入n个实数,将它们从小到大排序后输出。

输入正整数n,再输入n个实数,将它们从小到大排序后输出。
(1)利用起泡法排序;
(2)使用函数的起泡法排序:定义一个函数sort_qp(),其功能是实现起泡法排序,在主函数中调用sort_qp函数,实现n个实数从大到小的排

#include <stdio.h>
#include <conio.h>

#define LEN 100 /*数组长度上限*/
#define elemType int /*元素类型*/

/*输入数组*/
void inputArr (elemType arr[], int len) {
int i;
for (i=0; i<len; i++)
scanf ("%d",&arr[i]);
putchar ('\n');
}

/*打印数组*/
void printArr (elemType arr[], int len) {
int i;
for (i=0; i<len; i++)
printf ("%d\t",arr[i]);
putchar ('\n');
}

/*升序冒泡排序*/
/*参数说明:*/
/*int arr[]:排序目标数组*/
/*int len:元素个数*/
void sort_qp (elemType arr[], int len) {
elemType temp;
int i, j;
for (i=0; i<len-1; i++)
for (j=0;j<len-1-i; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}

int main (void) {
elemType arr[LEN];
int len;

printf ("请输入数组元素个数:");
scanf ("%d",&len); 

printf ("请输入包含%d个元素的数组:\n",len);
inputArr (arr, len);

puts ("排序后数组:");
sort_qp (arr, len); /*升序冒泡排序*/
printArr (arr,len);
putchar ('\n');

getch (); /*屏幕暂留*/
free (arr);
return 0;
}

运行结果

追问

大神,这是第一问的吗,第二问怎么做啊。。。。。

追答

这就是你原题要求的“用起泡法排序”的整个代码

追问

哦哦,这是两个结合了吗,我C语言太差了,求大神仔细点说一下吧~

追答

原回答写错了。。题目要求的是【从大到小】,即降序排列。。以下改正

#include <stdio.h>
#include <conio.h>

#define LEN 100 /*数组长度上限*/
#define elemType int /*元素类型*/

/*输入数组*/
void inputArr (elemType arr[], int len) {
int i;
for (i=0; i<len; i++)
scanf ("%d",&arr[i]);
putchar ('\n');
}

/*打印数组*/
void printArr (elemType arr[], int len) {
int i;
for (i=0; i<len; i++)
printf ("%d\t",arr[i]);
putchar ('\n');
}

/*降序冒泡排序*/
/*参数说明:*/
/*int arr[]:排序目标数组*/
/*int len:元素个数*/
void sort_qp (elemType arr[], int len) {
elemType temp;
int i, j;
for (i=0; i<len-1; i++) /*外循环控制排序趟数,n个数排n-1趟*/
for (j=0; j<len-1-i; j++) { /*内循环每趟比较的次数,第j趟比较n-j次*/
if (arr[j] < arr[j+1]) { /*相邻元素比较,逆序则交换*/
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}

int main (void) {
elemType arr[LEN];
int len;

printf ("请输入数组元素个数:");
scanf ("%d",&len); 

printf ("请输入包含%d个元素的数组:\n",len);
inputArr (arr, len);

puts ("排序后数组:");
sort_qp (arr, len); /*降序冒泡排序*/
printArr (arr,len);
putchar ('\n');

getch (); /*屏幕暂留*/
free (arr);
return 0;
}

运行结果

啥叫结合了?本身就是一道题啊。
排序有很多种算法,题目要求用冒泡法,那sort_qp函数就是用冒泡法编写的呀

温馨提示:答案为网友推荐,仅供参考
相似回答