失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > c语言找出最大值和最小值并按降序排输出 C语言用排序法给十个数降序排列 用C语言编

c语言找出最大值和最小值并按降序排输出 C语言用排序法给十个数降序排列 用C语言编

时间:2019-06-03 04:58:12

相关推荐

c语言找出最大值和最小值并按降序排输出 C语言用排序法给十个数降序排列 用C语言编

问题标题

C语言用排序法给十个数降序排列,用C语言编写,输入10个数按降序排列

-6-4来自ip:14.161.145.86的网友咨询

浏览量:562手机版

问题补充:

C语言用排序法给十个数降序排列,用C语言编写,输入10个数按降序排列

网友答案

#includeint main(){int a10,temp;int i,j,k;for(i=0;iscanf("%d",&ai);for(i=0;i{k=i;for(j=i+1;jif(aj>ak)k=j;if(i!=k){temp=ak;ak=ai;ai=temp;}}for(i=0;iprintf("%d\n",ai);return 0;}不懂可以追问

网友答案

#include "stdafx.h"#include "stdio.h"int main(int argc, char* argv){int a10;int i,j,d;printf"请输入十个整数,用空格隔开:";for(i=0;i{scanf("%d",&ai);}for(i=0;i{for(j=i+1;j{if(ai{d=ai;ai=aj;aj=d;}}}for(i=0;i{printf("%d ",ai);}return 0;}用选择法。

网友答案

一、算法思想 选择排序Selection sort是一种简单直观的排序算法。

它的工作原理是每一次从待排序的数据元素中选出最小或最大的一个元素,存放在序列的起始位置,直到全部待排序的数据有序。

选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。

选择排序有简单选择排序、堆排序等多种算法。

下面的分析、操作、程序均以简单选择排序算法为例进行讲解。

二、操作过程 初始状态: 49 38 65 97 76 13 27 49 32 13 第1趟: i k 13 (38) 65 97 76 49 27 49 32 13 第2趟: i k 13 13 (65) 97 76 49 27 49 32 38 第3趟: i k 13 13 27 (97) 76 49 65 49 32 38 第4趟: i k 13 13 27 32 (76) 49 65 49 97 38 第5趟: i k 13 13 27 32 38 (49) 65 49 97 76 第6趟: i,k 13 13 27 32 38 49 (65) 49 97 76 第7趟: i k 13 13 27 32 38 49 49 (65) 97 76 第8趟: i,k 13 13 27 32 38 49 49 65 (97) 76 第9趟: i k 13 13 27 32 38 49 49 65 76 97 三、参考程序#include #define MAX 10/* 从键盘输入n个数,保存在数组中 */ void input(int arr, int n);/* 使用简单选择排序对数组中的元素按非递减有序排列 */ void sort(int arr, int n);/* 输出数组中的所有元素 */ void display(int arr, int n); int main() { int arrMAX; printf"请输入%d个数:\n", MAX; input(arr, MAX); printf"排序前:\n"; display(arr, MAX); sort(arr, MAX); printf"排序后:\n"; display(arr, MAX); return 0; }/* 从键盘输入n个数,保存在数组中 */ void input(int arr, int n) { int i; for(i=0; i { scanf("%d", &arri); } }/* 使用简单选择排序对数组中的元素按非递减有序排列 */ void sort(int arr, int n) { int i, j, k; int temp; for(i=0; i { k = i; for(j=i+1; j { if(arrj { k = j; } } if(k != i) { temp = arrk; arrk =arri; arri = temp; } } }/* 输出数组中的所有元素 */ void display(int arr, int n) { int i; for(i=0; i { printf("%d ", arri); } printf("\n"); } 四、运行测试 请输入10个数:49 38 65 97 76 13 27 49 32 13 排序前:49 38 65 97 76 13 27 49 32 13 排序后:13 13 27 32 38 49 49 65 76 97

网友答案

选择法:#include "stdio.h"main(){int a11;int i,j,k,n;for (i=1;iscanf("%d",&ai);for(i=1;ifor(j=i+1;j{(ai>aj)?(a0=ai,ai=aj,aj=a0):(a0=0);}for(i=1;iprintf("%5d",ai);}起泡法:#include "stdio.h"main(){int a11;int i,j;for(i=1;iscanf("%d",&ai);for(i=1;ifor(j=1;j(aj>aj+1)?(a0=aj,aj=aj+1,aj+1=a0):(a0=0);for(i=1;iprintf("%5d",ai);}自己学的时候写的。

才写了不久,二种方法你可以做个比较。

网友答案

首先看看起泡法:所谓起泡法,就是将相邻的两个数作比较,如果第一个数比第二个数大,则进行交换,将小的调到前头,这样一趟比较下来,则小数上浮,最大的数沉到最底。

可以推知,要对10个数进行排序,则需要进行9趟比较,才能使10个数按大小顺序排列。

每一趟都要进行两个数之间的比较,在第一趟中,要比较9次,第二趟刚8次,依此类推,可以得知,如果有n个数,则要进行n-1趟比较,在第1趟比较中要进行n-1次两两比较,在第 j 趟比较中要进行 n-j 次两两比较。

据此,列出代码如下:#include int main(){int i,j,temp,a11;printf("enter data:\n");for (i=1;i{printf("a%d=",i);scanf("%d",&ai);}printf("\n");for (i=1;iprintf("%5d",ai);printf("\n");for (j=1;jfor (i=1;i{if (ai>ai+1){temp=ai;ai=ai+1;ai+1=temp;}}printf("\nthe sorted numbers:\n");for (i=1;iprintf("%5d",ai);getch();return 0;}再来看看选择法:所谓选择法,就是将第一个数与余下的所有的数都进行比较,如果第一个数比其他数都小,则不进行交换,如果余下的数有一个以上比第一个数小,则将其中最大的一个与第一个数交换,这样一趟比较下来,第一个数就存放了最小的数。

起泡法是最大数沉底,选择法是最小数坐头。

据此,选择法代码如下:#include int main(){int i,j,min,temp,a11;printf("enter data:\n");for (i=1;i{printf("a%d=",i);scanf("%d",&ai);}printf("\n");for (i=1;iprintf("%5d",ai);printf("\n");for (i=1;i{min=i;for (j=i+1;jif (amin>aj)min=j;temp=ai;ai=amin;amin=temp;}printf("\nthe sorted numbers:\n");for (i=1;iprintf("%5d",ai);getch();return 0;}

网友答案

#include "stdafx.h"#include "stdio.h"int main(int argc, char* argv){ int a10; int i,j,d; printf"请输入十个整数,用空格隔开:"; for(i=0;i<10;i++) { scanf("%d",&ai); } for(i=0;i<9;i++) { for(j=i+1;j<10;j++) { if(ai...

网友答案

#include int main(){ int number10 = {95, 45, 15, 78, 84, 51, 24, 12,34,23}; for (int j = 0; j ai + 1) { int temp = ai;ai = ai + 1; ai + 1 = temp; } } for (int i = 0; i ax,然后采用分治的策略分别对a1~ak-1和ak+1~an两组数据进行快速排序。

希尔排序 已知一组无序数据a1、a2、……an,需将其按升序排列。

首先取一增量d(d参考资料:排序-百度百科...

网友答案

#include int main(void){int i,j,max,Num;int Nums10;printf("\nPlace input 10 numbers:");for (i=0;i{printf("\nInput number %d:",i+1);scanf("%d",&Numsi);}for (i=0;i{max=0;for (j=0;j{if (Numsmax{max=j;}}if (Numsmax!=Nums9-i){Num=Numsmax;Numsmax=Nums9-i;Nums9-i=Num;}}for (i=0;i{printf("%d ",Numsi);}return 0;}

网友答案

代码如下对10个整数进行升序排序: #include<stdio.h> int main() { int i,j,t,a10={5,4,8,3,6,9,7,222,64,88}; //排序 for(i=1;i<10;i++)//外循环控制排序趟数,n个数排n-1趟 { for(j=0;j<10-1;j++)//内循环每趟比较的次数,第j趟比较n-i次 { if(aj>aj+1)//相邻元素比较,逆序则交换 { t=aj; aj=aj+1; aj+1=t; } } } printf"排序后的结果是:\n"; for(i=0;i<10;i++) { printf("%d",a<i>); } printf("\n"); return 0; } 冒泡法: 算法分析:如果有n个数,则要进行n-1趟比较。

在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。

比较的顺序从前往后,经过一趟比较后,将最值沉底换到最后一个元素位置,最大值沉底为升序,最小值沉底为降序。

扩展资料:include用法: #include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容 #include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。

有两种方式可以指定插入头文件: 1、#include&lt;文件名> 2、#include"文件名" 如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。

如下例所示: #include<math.h&gt;//一些数学函数的原型,以及相关的类型和宏 如果需要包含针对程序所开发的源文件,则应该使用第二种格式。

采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。

只要使用#include命令,这些定义就可被任何源文件使用。

如下例所示: #include"myproject.h"//用在当前项目中的函数原型、类型定义和宏 你可以在#include命令中使用宏。

如果使用宏,该宏的取代结果必须确保生成正确的#include命令。

例1展示了这样的#include命令。

【例1】在#include命令中的宏 #ifdef _DEBUG_ #define MY_HEADER"myProject_dbg.h" #else #define MY_HEADER"myProject.h" #endif #include MY_HEADER 当上述程序代码进入预处理时,如果_DEBUG_宏已被定义,那么预处理器会插入myProject_dbg.h的内容;如果还没定义,则插入myProject.h的内容。

网友答案

#include //简单选择排序 void SelectSort(int r , int n) { int i; int j; int index; int temp; for (i=0; i

我来回答

验证码:

大家还关注

c语言找出最大值和最小值并按降序排输出 C语言用排序法给十个数降序排列 用C语言编写 输入10个数按降序排列...

如果觉得《c语言找出最大值和最小值并按降序排输出 C语言用排序法给十个数降序排列 用C语言编》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。