首先利用scanf函数输入三个数a,b,c, 然后利用fun函数比较三角三个数的大小,最大的放在a,最小的放在c,中间的放在b,最后再次输出排序后的数。程序如下:
#include<stdio.h>
void fun(int *a,int *b,int *c)
{
int *k;
if(a<b)
{k=a;a=b;a=k;}
if(a<c)
{k=a;a=c;a=k;}
if(b<c)
{k=b;b=c;c=k;}
}
void main()
{
int a,b,c;
printf("input a , b , c:\n");
scanf("%d%d%d",&a,&b,&c);
printf("the first: a=%d,b=%d,c=%d\n",a,b,c);
fun(&a,&b,&c);
printf("the second: a=%d,b=%d,c=%d\n",a,b,c);
}
现在的疑问是,我输入三个数之后,并没有按照我的想法输出,而是输出和输入的顺序一样的数,结果这样:
方法如下:
#include<stdio.h>
//#include<windows.h>
voidmain()
{
intmax3(inta,intb,intc);
inta,b,c,result;
printf("Pleaseenterthreenumber:\n");
scanf("%d,%d,%d",&a,&b,&c);
result=max3(a,b,c);
printf("Themaxofthreenumberis%d:\n",result);
//system("pause");
}
intmax3(inta,intb,intc)
{
intx,z;
if(a>b)x=a;
elsex=b;
if(x>c)z=x;
elsez=c;
returnz;
}
扩展资料:
C语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境,在用C语言实现相同功能时的代码基本一致,不需或仅需进行少量改动便可完成移植,这就意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行,从而极大的减少了程序移植的工作强度。
与其他高级语言相比,C语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。
然后,你的交换逻辑也有问题
void fun(int *a,int *b,int *c)
{
int k;
if(*a<*b)
{k=*a;*a=*b;*b=k;}
if(*a<*c)
{k=*a;*a=*c;*c=k;}
if(*b<*c)
{k=*b;*b=*c;*c=k;}
}
应该是这样写,我调试过了,就是这样本回答被提问者采纳