通过这几天的学习,我觉得自己虽有基础,但应注重细节,以及计算机的思考模式。比如刷oj,编译器对我们每一个环节的要求都十分苛刻,我至今无法忘记因为指针未初始化找了一天的糟糕体验,以及3+2与%d+%d之间的区别。编译器在某种程度上来讲十分的“not sensitive and native”,但是,我们必须作出改变来适应它。
问题1:程序死循环
问题在于自定义函数中的for循环,I在0到1之间反复循环导致return m接不到返回值。
问题2:狄仁杰是个Debug高手!!!
问题在于思考
问题3:循环问题
还是思考!!!
PTA作业:
1.7-6交换a和b的值 要求输入学号,以及学号+5的值。
2.7-7三个整数之和 要求输出学号 班级序号 班级小学号。
include <stdio.h>
int main()
{
int a,b,c,sum;
scanf("%d%d%d",&a,&b,&c);
sum=a+b+c;
printf("sum=%d\\n",sum);
return 0;
}
3.7-3 后天,写出在分析解决该问题的基本思路与想法。
include <stdio.h>
int main()
{
int d;
scanf("%d",&d);
if(d<=0){
printf("error\\n");
}
else if(d<=5){
d+=2;
}
else if(d6){
d=1;
}
else if(d7){
d=2;
}
else printf("error\\n");
printf("%d\\n",d);
return 0;
}
想法和分析:
这道题难点在于细节,一旦想通就并不难。
前5天并没有任何问题,因为它在7以内,不会出现任何问题。可是在第六天时,加二之后却得8大于7,第七天得9,离最大值越来越远。所以这道题需要嵌套结构,多用if-else结构罗列出所有特殊情况,就可以破解难题。
MOOC注册: