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\uff1f

1\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的数组里面,然后调用这个排序方法,希望可以帮到你,望采纳

  • c璇█ 杈撳叆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...
  • c璇█ 杈撳叆5涓暟杈撳嚭5涓暟 鐢ㄥ嚱鏁拌皟鐢鐨勬柟娉
    绛旓細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璁板緱鍔犻楀彿鍝 杈...
  • c璇█ 杈撳叆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;}
  • 鐢c璇█寰幆缁撴瀯缂栫▼:浠庨敭鐩橀殢鏈杈撳叆5涓鏁存暟,鏄剧ず鑳借3鏁撮櫎鐨勬暟?
    绛旓細鐒跺悗锛屽湪`for`寰幆涓紝鎴戜滑浣跨敤`scanf`鍑芥暟浠庨敭鐩樿鍏ヤ竴涓暣鏁帮紝骞跺皢鍏惰祴鍊肩粰`num`鍙橀噺銆傛帴鐫锛屾垜浠娇鐢╜if`璇彞鍒ゆ柇璇ユ暟鏄惁鑳借3鏁撮櫎锛屽鏋滃彲浠ワ紝鍒欐墦鍗板嚭璇ユ暟鑳借3鏁撮櫎鐨勪俊鎭傛渶鍚庯紝閫氳繃瀵硅鏁板櫒鍙橀噺`i`鐨勬帶鍒讹紝瀹炵幇浜嗗惊鐜5娆¤鍏ュ苟鍒ゆ柇5涓鏁存暟鐨勫姛鑳姐傚笇鏈涜繖涓唬鐮佽兘澶熷府鍔╁埌浣狅紒
  • 缂栧啓C璇█,杈撳叆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...
  • C璇█琚皟鍑芥暟杈撳叆浜斾釜鏁鏀惧叆鏁扮粍涓璋冪敤鍒颁富鍑芥暟,骞朵笖鎵撳嵃鍑烘潵鎴戞墦鍗...
    绛旓細} 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;} ...
  • 缂栧啓涓涓C绋嬪簭,浠庨敭鐩杈撳叆浜斾釜鏁存暟骞朵繚瀛樺埌鏁扮粍涓,姹傛暟缁勫厓绱犱箣鍜 鐢ㄥ嚱...
    绛旓細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...
  • C璇█瑕佹眰閫氳繃閿洏杈撳叆5瀛楃涓,鍐璋冪敤鍑芥暟sort缁欏瓧绗︿覆浠庡皬鍒板ぇ鎺掑垪,鍐...
    绛旓細鐪嬩綘浠g爜鍘熸剰锛屾槸鎯冲畾涔変竴涓瓧绗︿覆鏁扮粍strs銆備絾鏄綘鍐欑殑char *strs[5];琛ㄧず鐨勬槸涓涓淮搴︿负5鐨勬寚閽堟暟缁勩備綘鍙互鎶妔trs鐩存帴鏀规垚瀛楃涓叉暟缁勶紝char strs[5][N]锛屼絾浣犲悗闈㈢殑鍑芥暟鍙傛暟绫诲瀷涔熻璺熺潃鏀广傚鏋滀綘涓嶆兂鏀瑰姩鍏朵粬鍑芥暟锛杩樼户缁娇鐢ㄦ寚閽堟暟缁勶紝涔熸槸鍙互鐨勩備綘鍙互鐢ㄥ姩鎬佸唴瀛樻潵鍐杈撳叆閮ㄥ垎锛氾紙澶存枃浠...
  • c璇█鍦ㄤ富鍑芥暟涓杈撳叆涓涓5浣嶆暟,璋冪敤鑷畾涔夊嚱鏁板垎鍒緭鍑哄叾鍚勪綅涓婄殑鏁板瓧...
    绛旓細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);}杩愯绀轰緥锛
  • C璇█鐨勯棶棰.闅忔剰杈撳叆浜斾釜鏁扮敤鎸囨暟鍜鍑芥暟璋冪敤.缁撴灉鏄粠澶у埌灏忔帓鍒/_鐧...
    绛旓細鐪嬫潵浣犺繕娌$湡姝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...
  • 扩展阅读:自己怎么开发app软件 ... 车辆调用函模板 ... 学习c++的视频 ... 申请调剂车辆的请示 ... c语言必背100代码 ... m98调用子程序实例 ... 借用公车的函 ... 车辆调拨情况说明 ... c语言如何调用函数 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网