王牌对王牌的第一季:请大家看一下,我这个C语言程序编得如何?

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 11:02:09
有3个整数a、b、c,由键盘输入,输出其中最大的数和最小的数。#include <stdio.h>
main()
{
int a,b,c;
printf("\nEnter 3 integers separated by spaces:");
scanf(“%d %d %d”,&a,&b,&c);
if (a > b && a > c && b>c)
printf(“这个最大的数是:%d\n",a);
printf(“这个最小的数是:%d\n",c);
else if (a > b && a > c && c>b)
printf(“这个最大的数是 :%d\n",a);
printf(“这个最小的数是:%d\n",b);
else if (b > c && b > a && a>c)
printf(“这个最大的数是 :%d\n",b);
printf(“这个最小的数是:%d\n",c);
else if (b > c && b > a && c>a)
printf(“这个最大的数是 :%d\n",b);
printf(“这个最小的数是:%d\n",a);
else if (c> a && c > b && a>b)
printf(“这个最大的数是 :%d\n",c);
printf(“这个最小的数是:%d\n",b);
else
printf(“这个最大的数是 :%d\n",c);
printf(“这个最小的数是:%d\n",a);

return (0);
}
这样来编行不行哈?
main()

{ int a,b,c,t;

printf("input a,b,c: ");

scanf("%d%d%d",&a,&b,&c);

printf(a=%d, b=%d, c=%d\n",a,b,c);

if(a>b) /*如果a比b大则进行交换,把小的数放入a中*/

{t=a;a=b;b=t;}

if(a>c) /*如果a比c大则进行交换,把小的数放入a中*/

{t=a;a=c;c=t;} /*至此a、b、c中最小的数已放入a中*/

if(b>c) /*如果b比c大则进行交换,把小的数放入b中*/

{t=b;b=c;c=t;} /*至此a、b、c中的数已按由小到大的顺序放好*/

printf("%d,%d\n",c,a); /*输出最大的数c和最小的数a*/

}

同意Okayboy的意见。可以用冒泡法排序:
if(a<b){temp=a;a=b;b=temp;}
if(b<c){temp=b;b=c;c=temp;}
if(a<b){temp=a;a=b;b=temp;}

重复使用逻辑判断,效率太差。C语言很久不用了,写不出来范例,我想给你一个思路,你看能不能更适合:

可以定义数组,接受输入的数字,然后使用“冒泡法”排序,输出第一个和最后一个。

否则当输入的变量不止3个的时候,比如30个,你岂不是要重复重复再重复地使用逻辑比较吗?