题目
编写一个程序,输入a、b、c三个值,输出其中最大值。
输入一行数组,分别为a b c
输出a b c其中最大的数
感受
因为最近一直都在做一个校级的大学生科研创新项目,一直在用Python,所以刷题的时候使用了Python的语法,导致一直出错没发现= =
代码更改过程
过程一
原代码如下:
#include<stdio.h>
int main()
{
int a, b, ;
int max;
while(scanf("%d %d %d", &a, &b, &c))
{
max = a;
if(b > max)
max =b;
if(c > max)
max = c;
}
printf("%d", max);
return 0;
}
过程二
但是!!!!由于有时间的限制,使用if语句并不可行,于是我考虑用条件选择语句(a > b)? a : b 类似的形式。(由于习惯了Python所以又忘记打分号了)
此时代码如下:
#include<stdio.h>
int main()
{
int a, b, c;
int max;
while(scanf("%d %d %d", &a, &b, &c))
{
max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
}
printf("%d", max);
return 0;
}
此时时间仍然超出限制!!!!
过程三
条件选择语句时间也超出限制让我觉得很懵,难道还有更合适的办法不成(可能真的有但是我没想到)
所以实际上……我只是多加了一个while语句……
所以最终通过的代码如下:
#include<stdio.h>
int main()
{
int a, b, c;
int max;
scanf("%d %d %d", &a, &b, &c);
max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
printf("%d", max);
return 0;
}
这就解决时间超限制的问题啦
ps.还没有看别人是如何解决的,有时间学习以后再更新一波