L1-010 比较大小
分数 10
作者 杨起帆
单位 浙大城市学院
本题要求将输入的任意3个整数从小到大输出。
输入格式:
输入在一行中给出3个整数,其间以空格分隔。
输出格式:
在一行中将3个整数从小到大输出,其间以“->”相连。
输入样例:
4 2 8
输出样例:
2->4->8
代码长度限制
16 KB
时间限制
400 ms
部分正确的代码:
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
int temp=a;
a=b;
b=temp;
}
if(b>c)
{
int temp=b;
b=c;
c=temp;
}
if(a>c)
{
int temp=a;
a=c;
c=temp;
}
printf("%d->%d->%d",a,b,c);
return 0;
}
部分正确的原因:代码只确保了a
是三者中最小的,但并没有确保b
是中间值,c
是最大值
正确代码:采用冒泡排序算法,先找最小的作为a再比较b和c
#include<stdio.h>
int main() {
int a, b, c;
int temp;
scanf("%d %d %d", &a, &b, &c);
// 确保a是最小的
if (a > b) {
temp = a;
a = b;
b = temp;
}
if (a > c) {
temp = a;
a = c;
c = temp;
}
// 现在a是最小的,比较b和c来确定中间值和最大值
if (b > c) {
temp = b;
b = c;
c = temp;
}
printf("%d->%d->%d\n", a, b, c);
return 0;
}
内存限制
64 MB