c语言比较三个不同整数的大小

来源:百度知道 编辑:UC知道 时间:2024/05/25 19:25:55
#include<stdio.h>
void main()
{
int x,y,z,a,b,c;
printf("请输入三个不同的整数\n");
scanf("%d,%d,%d",&x,&y,&z);
if(x<y&&x<z&&y<z){a=x; b=y; c=z;}
else if(x<y&&x<z&&y>z){a=x; b=z; c=y;}
else if(x<y&&x>z){a=z;b=x;c=y;}
else if(x>y&&x<z){a=y;b=x;c=z;}
else if(x>y&&x>z&&y>z){a=z;b=y;c=x;}
else if(x>y&&x>z&&y<z){a=y;b=z;c=x;}
printf("这三位整数从小到大排列为:%d,%d,%d\n",a,b,c);
}
有错吗

错倒是没错,只不过这个算法有待改进,而且你输入的格式要求中间有逗号,最好要提示一下。还有你的算法可以优化一下

main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("small to big: %d %d %dn",x,y,z);
}

两两比较.
#include "stdio.h"
main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;}
if(x>z)
{t=z;z=x;x=t;}
if(y>z)
{t=y;y=z;z=t;}
printf("small to big: %d %d %dn",x,y,z);
}