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.    做题时思路堵塞,就不要老想用老方法生磕出来,想想有没有自己还没学的知识,或者改变思路,用全新的方法,不然即浪费时间又没有效率,即使码出来也是没有价值的冗长代码,没有起到学习的作用。

原文地址:https://www.cnblogs.com/zhangrongbo/p/7707868.html