C语言实验报告

一.实验题目,设计思路,实现方法。

第三次实验7-7计算火车运行时间,

第四次 计算分段函数和循环NEW 4-6输出华氏-摄氏温度转换表,

第四次 分支+循环 加强版 4.2.7 装睡。

设计思路:

计算火车运行时关键在于运算方法,对其进行统一转化量度,再进行运算。

4-6输出华氏-摄氏温度转换表和4.2.7 装睡中,都输入了不定值整数限定处理数据的数量,都需要进行for循环使程序中的每个量按顺序进行运算,并利用if限定范围。

实现方法:

1.对于7-7计算火车运行时间,关键在于运算方法,该题将时间统一转换为分钟再对其进行运算,并在输出使用%02d,使结果在不满两位数时前一位补零。

2.对于4-6输出华氏-摄氏温度转换表,按照要求输入两个不定值整数,通过条件判断限定范围,再通过for循环运行,最后按照要求输出。(注意一个摄氏温度celsius占据6个字符宽度,靠右对齐,保留1位小数。)

3.对于4.2.7 装睡,按照要求输入一个不定值整数,并且该整数决定了接下来需要处理的数据的量,为了方便我们成批的输出,引入数组这个概念。再通过for循环中嵌入if语句进行判断,最后成批输出。

    

二.源程序

第三次实验7-7计算火车运行时间:

#include<stdio.h>
int main()
{
int x, y;
int hour, minute;
scanf("%d %d",&x,&y);
x=x/100*60+x%100;
y=y/100*60+y%100;
hour=(y-x)/60;
minute=(y-x)%60;
printf("%02d:%02d",hour,minute);


return 0;
}

第四次 计算分段函数和循环NEW 4-6输出华氏-摄氏温度转换表

#include<stdio.h>
int main()
{
int fahr, lower, upper;
double celsius;
scanf("%d %d",&lower,&upper);
if(lower<=upper&&upper<=100){
printf("fahr celsius\n");
for(fahr=lower; fahr<=upper; fahr+=2){
celsius = 5.0 * (fahr -32) / 9.0;
printf("%d%6.1lf\n", fahr, celsius);
}
}else{
printf("Invalid.");
}
return 0;
}

第四次 分支+循环 加强版 4.2.7 装睡。

#include<stdio.h>
char name[9];
int main()
{
int n,r,t,i;
scanf("%d\n",&n);
for(i=1;i<=n;i++)
{
scanf("%s %d %d\n",name,&r,&t);
if(r<15||r>20||t<50||t>70)
{
printf("%s\n",name);
}
}
return 0;
}

三.遇到的问题及解决方法,心得体会

1.对许多输出中特定的输出格式(%02d,%6.1lf,%s)未能了解其含义,最终通过查阅书籍等方法解决。

2.忽略了对输出是字符的考虑,依旧使用int导致错误,后通过与同学的交流,得以解决。

3.对关系运算符的运用不够熟练,(例lower<=upper&&upper<=100)对其连接符号不了解,后通过百度以及助教帮忙,得以掌握。

4.对数组char[ ]的不了解,后通过同学得知括号内数字决定,该数组储存数据的数量。

总而言之,这几次实验使我明白,写程序需要细心检查,每一个小错误,都能造成一个大问题,并且想问题不要理所当然,很多问题就出在这。

 

posted @ 2017-10-20 23:34  l瑜梓绛  阅读(578)  评论(1编辑  收藏  举报