C语言第一次实验报告
一. 实验题目,设计思路,实现方法
1. 第三次实验 计算分段函数(7-7 计算火车运行时间)
设计思路:由于给出的是四位整数,而题目要求的是时间,所以先想到的是把所有位数的数字单独列出来,在考虑有分钟大和小两种情况,要分类讨论。
实现方法:用求余的方法,分别求出小时和分钟,用if-else语句对分钟大和小两种情况进行分类,最后用%02d输出时间的格式。
2. 第四次 分支+循环 加强版(4-2-9 三个数由小到大输出,4-2-8 计算天数)
设计思路:2-9,2-8这两题单独拿出来是因为一开始都是用if-else模式去做,虽然最后答案也是正确,但是代码冗长,且极其容易出错,后来自学到后面才了解2-9用替换,2-8用数组代码更加简练,不容易出错。
实现方法:2-9先把x,y,z中假设一个是最小值然后和其他两个比较,若是最小仍然不变,若不是最小则和比他小的进行替换。2-8先把月份所有的天数数据输入到数组里面,在根据情况调用数组。
二. 源程序
7-7
a=m/100;
b=m%100;
c=n/100;
d=n%100;
int x,y;
if (b<=d){
x=c-a;
y=d-b;
}
else{
x=c-a-1;
y=60+d-b;
}
4-2-9
if(x>y){
t=x;
x=y;
y=t;
}
if(x>z){
t=x;x=z;z=t;
}
if(y>z){
t=y;y=z;z=t;}
4-2-8
int year,mouth,day,i,b;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
b=0;
scanf("%d/%d/%d",&year,&mouth,&day);
if((year%4==0&&year%100!=0)||year%400==0)a[1]=29;
for(i=0;i<mouth-1;i++)b=b+a[i];
b=b+day;
printf("%d",b);
三. 遇到的问题及解决方法,心得体会
1. 编程最重要的就是严谨,如果不注重细节,缺少个标点符号都会导致编译错误,尤其是条件上少判断一个细节或者判断错误是最致命的,因为编译器不会报错,提交只显示部分正确,导致纠错非常困难,一开始就要考虑周全所有情况
2. 程序员更关心速度,而不是大小,码出来的代码要尽可能的精简,一个小小的改动就可能是运行速度翻倍,所以要不断自学c后面的知识,才能知道什么时候用什么才是最简单最快捷。
3. 遇到不会的理论或者语法,查完码完要反复使用熟练,我个人就经常学完一个理论,几天不用就忘记了,掌握一个知识点不仅仅是知道这个知识点,而是反复的实践使用,才能运用娴熟。
4. 做题也要反复回顾,不然容易忘记,有一次别人问我之前的题目,我却忘了思路,又要重新思考,所以知识点需要不断的总结归纳,才能合理运用。
5. 做题时思路堵塞,就不要老想用老方法生磕出来,想想有没有自己还没学的知识,或者改变思路,用全新的方法,不然即浪费时间又没有效率,即使码出来也是没有价值的冗长代码,没有起到学习的作用。