代码如下:
一、头文件:
#include <stdio.h>
#define N 10
二、输入函数,获取输入值:
void sort(int a[],int n){ int i, j; int temp = 0; for (i = 0; i < n - 1; i++) { for (j = 0; j < n - 1 - i; j++) { if (a[j] < a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } }}
}
三、选择排序函数:
void select_sort(int *a, int n){ int i, j; int temp, max; for (i = 0; i < n - 1; i++) { max = i; for (j = i + 1; j < n; j++) if (a[max] < a[j]) max = j; if (max != i) { temp = a[max]; a[max] = a[i]; a[i] = temp; } }}
三、主函数,执行。
int main(void){ int a[N], i; for (i = 0; i < N; i++) { scanf("%d", &a[i]); } //sort(a, N); select_sort(a, N); for (i = 0; i < N; i++) { printf("%d,", a[i]); } putchar(10); return 0;}
扩展资料:
C语言排序的3种方法:
1、冒泡法:
思想:每次相邻两个数比较,若升序,则将大的数放到后面,一次循环过后,就会将最大的数放在最后。
2、选择排序:
从第一个数开始,每次和后面剩余的数进行比较,若升序,则如果后边的数比当前数字小,进行交换,和后面的所有的数比较、交换后,就会将当前的最小值放在当前的位置。
3、插入排序:
用扑克的方法解释,首先抽到第一张牌,将它放在第一位,排序是从第二次抽牌开始,第二次抽起一张牌3,它比9小,所以将9向后移一。位然后把3放在9原来的位置。再次抽牌2,发现它应该再3的前面,所以将3和9向后移,把2放到3原来的位置... ... 以此类推的思维。
...在主函数输入10个数,调用该函数,输出排序后的结果。
define N 10 二、输入函数,获取输入值:void sort(int a[],int n){ int i, j; int temp = 0; for (i = 0; i < n - 1; i++) { for (j = 0; j < n - 1 - i; j++) { if (a[j] < a[j + 1]) { temp = a[j]; a[j] = a[j + ...
用计算机C语言编程,程序设计题:从键盘输入十个数,将他们进行降序排列...
include<stdio.h>int main(){int i,j,t,a[10]; for(i=0;i<10;i++) \/\/输入10个整数 scanf("%d",&a[i]); for(i=0;i<9;i++) \/\/降序冒泡排序 for(j=0;j<9-i;j++) if(a[j]<a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;...
从键盘输入10个整数,编写程序用选择排序法对这十个数降序排列,要求主函 ...
int main(){int i,j,k,t,a[10];for(i=0;i<10;i++)\/\/输入10个整数 scanf("%d",&a[i]);for(i=0;i<9;i++)\/\/排序10个数,需要9轮 {k=i;\/\/当前最小值的编号 for(j=i+1;j<10;j++)\/\/扫描后续所有元素 if(a[j]<a[k])k=j;\/\/如后面的元素更小,就更新最小编号 t...
c语言输入10个整数,按降序排序输出
a[j]=temp; } } } return 0;}int main(){ int a[10]; int i,j; printf("input 10 numbers:\\n"); for(i=0;i<10;i++) { printf("the number%d is:",i+1); scanf("%d",a+i);
编写一个程序,要求从键盘输入10个整数存入一堆数据,然后对这10个数进 ...
int a[10];for(int i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)for(int j=i+1;j<10;j++)if(a[i]<a[j])swap(a[i], a[j]);FILE *file=fopen("c:\\\\out. dat","wb")if(file==NULL)return;for(i=0;i<10;i++)fwrite(&a[i],sizeof(int),1,file...
用C语言编写,输入10个数按降序排列
int main(){ int i = 0;int j = 0;double temp = 0;double a[10] = { 0 };\/\/定义三个变量和一个长度为10的数组;printf("请输入十个数:\\n");\/\/显示“请输入十个数”for (i = 0; i < 10; i++){ scanf("%lf", &a[i]);\/\/从键盘上输入十个数送到数组;} for (i ...
关于C语言进行降序排列
\/\/从键盘上输入10个整数,要求用插入法实现对它们进行降序排列。\/\/(主函数完成输入输出功能,排序用函数sort()来实现)。void sort(int a[],int n){ int i,j,temp;for(i=0;i<n-1;i++){ temp=a[i+1];j=i;while(j>-1&&temp<a[j]){ a[j+1]=a[j];j--;} a[j+1]=temp;}...
c语言10个整数快速排序降序
include <stdio.h>void quickSort(int a[],int left,int right)\/\/快速排序法{ int i,j; int k; int t; if(left < right) { i = left; j = right; k = a[left]; while(i < j) { while(i < j && a[j] <= k) j--; while(i < j && a[i] >= k...
...求助各位大神,谢谢~ 输入10个整数,将它们从大到小排序后输出...
(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_xz (elemType arr[], int len) {elemType temp;int i, j, k;...
填空题:C语言:键盘上输入10个整数,程序按降序完成从大到小排序
int *max,*s;void swap(int *x,int *y);if(p>q)return;max=p;for(s=p+1;s<=q;s++)if(*max<*s)max=s;swap(p,max);sort(p+1,q);} void swap(int *x,int *y){ int temp;temp=*x;x=*y;y=temp;} void main(){ int i,array[10];for(i=0;i<10;i++)scanf("...