C语言:输入5个数,用调用函数的方法,从小到大排序 用简单点的

4个数比较大小,结果从小到大排列,用C语言怎么编?~

1、首先双击打开桌面上的C-Free5编程软件。

2、打开编程软件以后,创建一个新页面来编写程序。

3、编写代码.

4、编写完代码以后,按F5进行编译。或者点击上方的小三角。

5、编译时,如果有错误会进行报错,大家需要进行检查修改。如果没有错误,会出现【0个错误,0个警告】。

6、编译完成后进行运行,按照提示依次输入三个整数。依次输入1,2,3。

7、输入完成后再点击回车键,三个数就会被从小到大依次排序。


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("
");

或者三个数的。

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个数,用调用函数的方法,从小到大排序 用简单点的
答: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("\n");} 运行截图: 本回答由提问者推荐 举报| 答案纠错 ...

C语言用数组输入5个数,运用调用函数求和,求大神给答案谢谢
答:int add(int a[5]){ int i,s=0;for(i=0;i<5;i++)s+=a[i];return s;} int main(){ int i,a[5];for(i=0;i<5;i++)scanf("%d",&a[i]);printf("%d",add(a));return 0;} //运行示例:

C语言:输入5个数,用调用函数的方法,从小到大排序 用简单点的
答: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("\n");} 或者三个数的。void sort(int *a, int *b,...

c语言题键盘输入5个数据到一个数组中,并求出最大值,最小值输出_百度知...
答:{ int a[5],i,max,min;printf("input 5 numbers:\n");for(i=0;i<5;i++)scanf("%d",&a[i]);max=min=a[0];for(i=0;i<5;i++){if(a[i]>max)max=a[i];if(a[i]<min)min=a[i];} printf("max=%d\nmin=%d\n",max,min);} ...

C语言求教:从键盘上任意输入五个数,输出其中的最大数与最小数.(函数的...
答:include <stdio.h> void MM(int *array){ int i, max = array[0], min = array[0];for(i = 1; i < 5; i++)max = (max > array[i]) ? max : array[i];for(i = 1; i < 5; i++)min = (min < array[i]) ? min : array[i];printf("max : %d, min : %d\...

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...

从键盘输入5个各不相同且位数不等的正整数; 调用函数fun( )判断这些数...
答:在一开始应该学过一个取整数各个位上的数的程序 x % 10 取个位 x /= 10 缩小10倍 这样,就可以从个位开始检查,看是不是后面的数依次是递减的就可以达到效果了。include<stdio.h> int main(){ char str[51];int i=0,j;gets(str);for(;str[i]!du='\0';i++)for(j=0;j<=i;j...

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个数调用数组函数排序,没语法错误,怎么我运行时最后一个数...
答:你的代码有问题,int num[5];这个是5个空间没有错,可以存5个整数,但是下标是从0开始的,就是 a[0]-a[4],所以你给它赋值a[1]-a[5]会出错,a[5]越界了 而且传递的是num,就是num[0]的地址,而这里num[0]你是没有赋值的

用C语言编写一个程序,在主函数输入5个成绩,通过调用自定义函数实现输出...
答://满意请采纳#include<stdio.h>void prin(int*a);int main(){int a[5]={0},n,i,sum=0;for(i=0;i<5;i++){scanf("%d",&a[i]);}prin(a);return 0;}void prin(int*a){int i,n=0;for(i=0;i<5;i++){if(a[i]<60)n++;}printf("%d\n",n);} ...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网