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个数,然后输出,请教这题怎么改?为什么?
printf("\\n");} void OutputArray(int *pa,int n){ int i=0;for(*(pa+i);i<n;i++){ printf("%4d",*(pa+i));} printf("\\n");} pa+i即数组名加数字表示数组元素中元素的地址,加0表示第一个,依次类推,你这一共5个元素,所以循环的时候i<5,i++到4刚好是第五个元素 ...

C语言用数组输入5个数,运用调用函数求和,求大神给答案谢谢
include <stdio.h> 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个整数,然后输出它们的积...
include<stdio.h> void main(){ int a,b,c,d,e,s;printf("请输入五个数以#结束:\\n");scanf("%d",&a);scanf("%d",&b);scanf("%d",&c);scanf("%d",&d);scanf("%d",&e);s=a*b*c*d*e;printf("五个数乘积为%d",s);} ...

用C语言编程:输入5个数,按从小到大顺序输出!?
include <stdio.h> void sort(int Array[5]);int main(){ int i,j,temp;int array[5];for(i = 0;i<5;i++)\/\/输入 { scanf("%d",&array[i]);} for(i = 0 ;i<5;i++)\/\/ 排序主体 { for(j = 5;j>i;j--){ if(array[i]>array[j]){ temp = array[i];array[i...

c语言,输入5个数,用指针比较,输出最大值,不知道哪里错了
include <stdio.h> int main(){ void sort(int x[],int n,int *);printf("input 5 numbers:\\n");int *p,i,a[5],max;p=a;for(i=0;i<5;i++)scanf("%d",p++);p=a;sort(p,5,&max); \/\/这里将max的地址传进去,子函数才能返回其值。printf("the max is :%d",max);g...

C语言,编写一个程序,从键盘输入5个数,算出总和及平均值!急!!!_百度知...
include<stdio.h> int main(){ int i,x;int sum=0;for(i=0;i<5;i++){ printf("请输入第%d个数:",i+1);scanf("%d",&x);sum+=x;} printf("和为%d,平均值为%.2f",sum,sum\/5.0);return 0;}

...使用C语言编写一个程序来算出键盘上随意输入5个数的总和和平均值...
include\\x0d\\x0aint main()\\x0d\\x0a{\\x0d\\x0a int shu[5];\/\/记录五个数\\x0d\\x0a int sum=0;\/\/总和;\\x0d\\x0a int ave=0;\/\/平均数\\x0d\\x0a int i;\/\/用于计数\\x0d\\x0a for(i=0;i<5;i++)\\x0d\\x0a {\\x0d\\x0a scanf("%d",&sh...

C语言用for语句输入5个数并找出最大最小值,运行出来有时候正确,有时候...
修改一下程序:include <stdio.h>int main() { int i; int num[5],max,min; printf("请输入5个数字:\\n"); for(i=0;i<5;i++) scanf("%d",&num[i]); max=num[0]; min=num[0]; for ( i=1;i<5;i++ ) { if ( max<num[i] ) max=num[i]; if ...

c语言编程 输入5个数 求出最大值和最小值
include<stdio.h> include<math.h> int max(int x,int y){ if(x>y)return x;else return y;} int min(int x,int y){ if(x<y)return x;else return y;} int main(){ int x,y,a,b,c,d,e,f,g,h,i,t,o,p,l;printf("输入任意五个整数:\\n");scanf("%d%d%d",&a,&b...

c语言:输入5个整数,放入数组中,输出最大元素和最小元素的值
思路:先定义一个数组,并键盘输入一个数赋值给数组的第一个数,且把该数赋值给最大值和最小数,接着for循环输出剩下4个数,并判断该数和最大值最小值的大小关系,更新最大值和最小值,最后输出最大值和最小值。参考代码:include "stdio.h"int main(){int a[5],max,min,i;scanf("%d",...

临汾市15530739614: c语言 输入5个数输出5个数 用函数调用的方法 -
顾航舒肟: #include<stdio.h> 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记得加逗号哦 输出1,2,3,4,5 够简单了吧

临汾市15530739614: 高手,本人最近在学C语言,老师要求用调用函数来求五个数的和与平均值咋编啊,注意,要用C语言,函数调用 -
顾航舒肟: #define N 5 #include "stdio.h" sum(int a[]){ int sum=0; int i; for(i=0;i<N;++i) sum+=a[i]; return sum; } average(int a[]){return sum(a)/N; } main(){ int a[N]; int i; printf("pliase input 5 number:"); for(i=0;i<N;++i) scanf("%d",&a[i]);printf("sum is %d...

临汾市15530739614: 用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); }

临汾市15530739614: C语言如何用调用函数的方法把5个数字从小到大排序? -
顾航舒肟: 1、在开头处定义了两个指针变量point_1和point_2.但此时他们并未指向任何一个变量,只是提供两个指针变量,规定他们可以指向整形变量,至于指向哪一个整形变量,要在程序语句中指定.程序第6,7两行的作用就是使point_1指向a,point_2...

临汾市15530739614: 用c语言编写,输入5个整数,输出最大值和最小值,要用值传递的方法, -
顾航舒肟: 值传递就是在调用函数中使用的参数不是实际的参数,而是拷贝过去的,即使调用函数中参数改变,实际参数也不跟着变,代码如下:#include void compare(int b[5]); void main() { int i; int a[5]; printf("请输入五个数:\n"); for(i=0;i scanf("%...

临汾市15530739614: C语言要求通过键盘输入5字符串,再调用函数sort给字符串从小到大排列,再调用print函数完成字符串输出. -
顾航舒肟: 看你代码原意,是想定义一个字符串数组strs.但是你写的char *strs[5];表示的是一个维度为5的指针数组.你可以把strs直接改成字符串数组,char strs[5][N],但你后面的函数参数类型也要跟着改.如果你不想改动其他函数,还继续使用指针数...

临汾市15530739614: C语言调用函数的方式绘制空心正方形 例 输入:5 输出:* * * * * * * * * * * * * * * * -
顾航舒肟: || 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23#include<stdio.h> intzfx(intn) {intx,y;for(x=0;x<n;x++){回for(y=0;y<n;y++){if(x==0|答|y==0||x==n-1||y==n-1)printf("*");elseprintf(" ");}printf("\n");}return0; }intmain() {intn;scanf("%d",&n);returnzfx(n); }

临汾市15530739614: 怎么用C语言编写一个程序,它从键盘上输入5个整数,然后输出它们的积? -
顾航舒肟: printf(“请输入5个数字:”);、 int i ; int a[4]; for(i=0;i<5;i++ ) { scanf("%d",a[i]); } printf("The answer is:"); printf("%d\n",a[0]*a[1]*a[2]*a[3]*a[4]);

临汾市15530739614: c++程序设计 输入5个学生的成绩,用函数调用的方式求出平均分,最高分,最低分 在线等!!!!! -
顾航舒肟: #include<iostream.h> #define NUM 5 //个数 float max(float *all) {float mmax=all[0];for (int i=1;i<NUM;i++){if (all[i]>mmax)mmax=all[i];}return mmax; } float min(float *all) {float mmin=all[0];for (int i=1;i<NUM;i++){if (all[i]<mmin)mmin=all[i];}...

临汾市15530739614: C语言被调函数输入五个数放入数组中调用到主函数,并且打印出来我打印出现了问题,不知道其他地方对不对 -
顾航舒肟: double的输入输出,对应的格式串为%lf long float 没想到测试了一下,问题一大堆!!已修改正确,请看注释 #include <stdio.h> #include <stdlib.h> int getUnits(double units[],int n) //参数少了一个 {int i;printf("please input numbers, circling five ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网