C语言:输入5个数,用调用函数的方法,从小到大排序 用简单点的 C语言如何用调用函数的方法把5个数字从小到大排序?
4\u4e2a\u6570\u6bd4\u8f83\u5927\u5c0f\uff0c\u7ed3\u679c\u4ece\u5c0f\u5230\u5927\u6392\u5217\uff0c\u7528C\u8bed\u8a00\u600e\u4e48\u7f16\uff1f1\u3001\u9996\u5148\u53cc\u51fb\u6253\u5f00\u684c\u9762\u4e0a\u7684C-Free5\u7f16\u7a0b\u8f6f\u4ef6\u3002
2\u3001\u6253\u5f00\u7f16\u7a0b\u8f6f\u4ef6\u4ee5\u540e\uff0c\u521b\u5efa\u4e00\u4e2a\u65b0\u9875\u9762\u6765\u7f16\u5199\u7a0b\u5e8f\u3002
3\u3001\u7f16\u5199\u4ee3\u7801.
4\u3001\u7f16\u5199\u5b8c\u4ee3\u7801\u4ee5\u540e\uff0c\u6309F5\u8fdb\u884c\u7f16\u8bd1\u3002\u6216\u8005\u70b9\u51fb\u4e0a\u65b9\u7684\u5c0f\u4e09\u89d2\u3002
5\u3001\u7f16\u8bd1\u65f6\uff0c\u5982\u679c\u6709\u9519\u8bef\u4f1a\u8fdb\u884c\u62a5\u9519\uff0c\u5927\u5bb6\u9700\u8981\u8fdb\u884c\u68c0\u67e5\u4fee\u6539\u3002\u5982\u679c\u6ca1\u6709\u9519\u8bef\uff0c\u4f1a\u51fa\u73b0\u30100\u4e2a\u9519\u8bef\uff0c0\u4e2a\u8b66\u544a\u3011\u3002
6\u3001\u7f16\u8bd1\u5b8c\u6210\u540e\u8fdb\u884c\u8fd0\u884c\uff0c\u6309\u7167\u63d0\u793a\u4f9d\u6b21\u8f93\u5165\u4e09\u4e2a\u6574\u6570\u3002\u4f9d\u6b21\u8f93\u51651\uff0c2\uff0c3\u3002
7\u3001\u8f93\u5165\u5b8c\u6210\u540e\u518d\u70b9\u51fb\u56de\u8f66\u952e\uff0c\u4e09\u4e2a\u6570\u5c31\u4f1a\u88ab\u4ece\u5c0f\u5230\u5927\u4f9d\u6b21\u6392\u5e8f\u3002
1\u3001\u5728\u5f00\u5934\u5904\u5b9a\u4e49\u4e86\u4e24\u4e2a\u6307\u9488\u53d8\u91cfpoint_1\u548cpoint_2\u3002\u4f46\u6b64\u65f6\u4ed6\u4eec\u5e76\u672a\u6307\u5411\u4efb\u4f55\u4e00\u4e2a\u53d8\u91cf\uff0c\u53ea\u662f\u63d0\u4f9b\u4e24\u4e2a\u6307\u9488\u53d8\u91cf\uff0c\u89c4\u5b9a\u4ed6\u4eec\u53ef\u4ee5\u6307\u5411\u6574\u5f62\u53d8\u91cf\uff0c\u81f3\u4e8e\u6307\u5411\u54ea\u4e00\u4e2a\u6574\u5f62\u53d8\u91cf\uff0c\u8981\u5728\u7a0b\u5e8f\u8bed\u53e5\u4e2d\u6307\u5b9a\u3002\u7a0b\u5e8f\u7b2c6,7\u4e24\u884c\u7684\u4f5c\u7528\u5c31\u662f\u4f7fpoint_1\u6307\u5411a\uff0cpoint_2\u6307\u5411b\uff0c\u6b64\u65f6point_1\u7684\u503c\u4e3a&a\uff08\u5373a\u7684\u5730\u5740\uff09\uff0cpoint_2\u7684\u503c\u4e3a&b\u3002
2\u3001\u7b2c10\u884c\u8f93\u51fa*point_1\u548c*point_2\u7684\u503c\uff0c\u5176\u4e2d\u7684\u201c*\u201d\u8868\u793a\u201c\u6307\u5411\u201d\u3002*point_1\u8868\u793a\u201c\u6307\u9488\u53d8\u91cfpoint_1\u6240\u6307\u5411\u7684\u53d8\u91cf\u201d\uff0c\u4e5f\u5c31\u662f\u53d8\u91cfa\u3002*point_2\u8868\u793a\u201c\u6307\u9488\u53d8\u91cfpoint_2\u6240\u6307\u5411\u7684\u53d8\u91cf\u201d\uff0c\u4e5f\u5c31\u662f\u53d8\u91cfb\u3002\u4ece\u8fd0\u884c\u7ed3\u679c\u6765\u770b\u4ed6\u4eec\u4e5f\u5c31\u662f100\u548c10.
3\u3001\u7a0b\u5e8f\u4e2d\u6709\u4e24\u5904\u51fa\u73b0*point_1\u548c*point_2\uff0c\u4f46\u662f\u4e24\u8005\u542b\u4e49\u4e0d\u540c\u3002\u7a0b\u5e8f\u7b2c5\u884c\u7684*point_1\u548c*point_2\u8868\u793a\u5b9a\u4e49\u4e24\u4e2a\u6307\u9488\u53d8\u91cf*point_1\u548c*point_2\u3002\u5b83\u4eec\u524d\u9762\u7684\u201c*\u201d\u53ea\u662f\u8868\u793a\u8be5\u53d8\u91cf\u662f\u6307\u9488\u53d8\u91cf\u3002\u7a0b\u5e8f\u6700\u540e10\u884c\u4e2d\u7684printf\u51fd\u6570\u4e2d\u7684*point_1\u548c*point_2\u5219\u8868\u793a\u6307\u9488\u53d8\u91cfpoint_1\u548cpoint_2\u6240\u6307\u5411\u7684\u53d8\u91cf\u3002
#include<stdio.h>
void sort(float *a, int n)
{
int i,j,tmp;
for(i=0; i<n-1; i++)
for(j=0; j<n-i-1; j++)
if(a[j]>a[j+1])
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
void main()
{
float a[5];
int i;
printf("请输入五个数(逗号隔开):");
scanf("%f,%f,%f,%f,%f",&a[0],&a[1],&a[2],&a[3],&a[4]);
sort(a,5);
printf("排序后为:");
for(i=0; i<5; i++)
printf("%.2f ",a[i]);
printf("
");
}
或者三个数的。
void sort(int *a, int *b, int *c)
{
int tmp;
if(*a>*b){
tmp = *b;
*b = *a;
*a = tmp;
}
if(*a>*c){
tmp = *c;
*c = *a;
*a = tmp;
}
if(*b>*c){
tmp = *c;
*c = *b;
*b = tmp;
}
return;
}
扩展资料:
C语言中没有预置的sort函数。如果在C语言中,遇到有调用sort函数,就是自定义的一个函数,功能一般用于排序。
一、可以编写自己的sort函数。
如下函数为将整型数组从小到大排序。void sort(int *a, int l)//a为数组地址,l为数组长度。
{
int i, j;
int v; //排序主体
for(i = 0; i < l - 1; i ++)
for(j = i+1; j < l; j ++)
{
if(a[i] > a[j])//如前面的比后面的大,则交换。
{
v = a[i];
a[i] = a[j];
a[j] = v;
}
}
}
对于这样的自定义sort函数,可以按照定义的规范来调用。
二、C语言有自有的qsort函数。
功 能: 使用快速排序例程进行排序。头文件:stdlib.h
原型:
void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数:
1、待排序数组首地址。
2、数组中待排序元素数量。
3、各元素的占用空间大小4 指向函数的指针,用于确定排序的顺序,这个函数必须要自己写比较函数,即使要排序的元素是int,float一类的C语言基础类型。
1、在开头处定义了两个指针变量point_1和point_2。但此时他们并未指向任何一个变量,只是提供两个指针变量,规定他们可以指向整形变量,至于指向哪一个整形变量,要在程序语句中指定。程序第6,7两行的作用就是使point_1指向a,point_2指向b,此时point_1的值为&a(即a的地址),point_2的值为&b。
2、第10行输出*point_1和*point_2的值,其中的“*”表示“指向”。*point_1表示“指针变量point_1所指向的变量”,也就是变量a。*point_2表示“指针变量point_2所指向的变量”,也就是变量b。从运行结果来看他们也就是100和10.
3、程序中有两处出现*point_1和*point_2,但是两者含义不同。程序第5行的*point_1和*point_2表示定义两个指针变量*point_1和*point_2。它们前面的“*”只是表示该变量是指针变量。程序最后10行中的printf函数中的*point_1和*point_2则表示指针变量point_1和point_2所指向的变量。
#include<stdio.h>
void sort(float *a, int n)
{
int i,j,tmp;
for(i=0; i<n-1; i++)
for(j=0; j<n-i-1; j++)
if(a[j]>a[j+1])
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
void main()
{
float a[5];
int i;
printf("请输入五个数(逗号隔开):");
scanf("%f,%f,%f,%f,%f",&a[0],&a[1],&a[2],&a[3],&a[4]);
sort(a,5);
printf("排序后为:");
for(i=0; i<5; i++)
printf("%.2f ",a[i]);
printf("
");
运行截图:
自定义一个交换两个数的函数
对5个数进行冒泡法
循环执行函数就行了
void bubble_sort(int array[],int n)
{
int i,j,flag,temp;
for(i = 0; i < n-1; i++)
{
flag = 1;
for(j = 0; j < n-i-1; j++)
{
if(array[j] > array[j+1])
{
temp= array[j];
array[j] = array[j+1];
array[j+1] = temp;
flag = 0;
}
}
if(1 == flag)
{
printf("%d ",i); //首先打印出,在第几层循环时顺序已排好
break; //跳出循环
}
}
return;
}
调用时,n的值为5就可以了,你可以将输入的数据存储到长度为5的数组里面,然后调用这个排序方法,希望可以帮到你,望采纳
绛旓細include <stdlib.h> void _scanf (double a[5]){ int i;for (i=0;i<5;i++){ printf ("璇杈撳叆绗%d涓暟瀛:",i+1);scanf ("%lf",&a[i]);} } void _printf (double a[5]){ int i;for (i=0;i<5;i++)printf ("%.2f\t",a[i]);} main (){ double a[5];_scanf...
绛旓細void f(){ printf("Please enter numbers:\n");//鎻愮ず杈撳叆 int a,b,c,d,e;scanf("%d,%d,%d,%d,%d",&a,&b,&c,&d,&e);//鎺ユ敹杈撳叆鐨勬暟瀛 printf("%d,%d,%d,%d,%d",a,b,c,d,e);//杈撳嚭杈撳叆鐨勬暟瀛 } int main(void){ f();return 0;} 杈撳叆1,2,3,4,5璁板緱鍔犻楀彿鍝 杈...
绛旓細include<stdio.h> int max(int x, int y){return x>y?x:y;} int main(){int a,b,c,d,e;scanf("%d%d%d",&a,&b,&c,&d,&e);printf("%d\n",max(max(max(max(a,b),c),d),e));return 0;}
绛旓細鐒跺悗锛屽湪`for`寰幆涓紝鎴戜滑浣跨敤`scanf`鍑芥暟浠庨敭鐩樿鍏ヤ竴涓暣鏁帮紝骞跺皢鍏惰祴鍊肩粰`num`鍙橀噺銆傛帴鐫锛屾垜浠娇鐢╜if`璇彞鍒ゆ柇璇ユ暟鏄惁鑳借3鏁撮櫎锛屽鏋滃彲浠ワ紝鍒欐墦鍗板嚭璇ユ暟鑳借3鏁撮櫎鐨勪俊鎭傛渶鍚庯紝閫氳繃瀵硅鏁板櫒鍙橀噺`i`鐨勬帶鍒讹紝瀹炵幇浜嗗惊鐜5娆¤鍏ュ苟鍒ゆ柇5涓鏁存暟鐨勫姛鑳姐傚笇鏈涜繖涓唬鐮佽兘澶熷府鍔╁埌浣狅紒
绛旓細include <stdio.h>#include <limits.h>//涓鍑芥暟int main(void){int num[5] = {0};printf("input 5 numbers:\n");for(int i=0; i< 5; i++) {scanf("%d", &num[i]);}int max = INT_MIN; //int鏈灏忓糵or(int i=0; i < 5; i++) {if(max < num[i]) {max = num...
绛旓細} return units[0];}int main(){ int members=5,a; double units[5]; getUnits(units,members); for(a=0;a<5;a++) { printf("%lf ",units[a]); //鐩存帴璋冪敤鏁扮粍鍏冪礌 } system("pause"); return 0;} ...
绛旓細include<stdio.h> void initArr(int* arr){ for(int i=0;i<5;i++){ scanf("%d",arr+i);} } int getSum(int* arr){ int sum=0;for(int i=0;i<5;i++){ sum+=*(arr+i);} return sum;} int main(){ int arr[5],sum;printf("input 5 numbers:\n");initArr(arr);s...
绛旓細鐪嬩綘浠g爜鍘熸剰锛屾槸鎯冲畾涔変竴涓瓧绗︿覆鏁扮粍strs銆備絾鏄綘鍐欑殑char *strs[5];琛ㄧず鐨勬槸涓涓淮搴︿负5鐨勬寚閽堟暟缁勩備綘鍙互鎶妔trs鐩存帴鏀规垚瀛楃涓叉暟缁勶紝char strs[5][N]锛屼絾浣犲悗闈㈢殑鍑芥暟鍙傛暟绫诲瀷涔熻璺熺潃鏀广傚鏋滀綘涓嶆兂鏀瑰姩鍏朵粬鍑芥暟锛杩樼户缁娇鐢ㄦ寚閽堟暟缁勶紝涔熸槸鍙互鐨勩備綘鍙互鐢ㄥ姩鎬佸唴瀛樻潵鍐杈撳叆閮ㄥ垎锛氾紙澶存枃浠...
绛旓細include <stdio.h>void fun(int n){int m=0;while(n){m=m*10+n%10;n/=10;}while(m){printf("%d ",m%10);m/=10;}}void main(){int n;scanf("%d",&n);fun(n);}杩愯绀轰緥锛
绛旓細鐪嬫潵浣犺繕娌$湡姝f槑鐧解鍑芥暟鈥濓紒swap(int*pt1,int*pt2,int*pt3,int*pt4,int*pt5)浣犲畾涔夌殑浜ゆ崲鍑芥暟swap鐨勫弬鏁5涓锛佽屽湪exchange涓璋冪敤鏃讹紝鈥渟wap(q1,q2);鈥濋兘鏄2涓疄闄呭弬锛侊紒=== 鍑芥暟exchange涓病鏈夎冭檻瀹屾墍鏈夌殑鎯呭喌锛=== 杩欐牱鏀逛笅灏卞彲浠ヤ簡锛歩nclude <stdio.h> swap(int *pt1,int *pt2){i...