第一次C语言实验报告
一.实验题目,设计思路,实现方法
#1.实验题目
7-7 计算火车运行时间(15 分)
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
4-5 求简单交错序列前N项和(15 分)
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
4-2-8 计算天数(15 分)
本题要求编写程序计算某年某月某日是该年中的第几天。
#设计思路
7-7思路:时间的计算比较麻烦,可以把分钟统一化成小时,也可以把小时统一化成分钟,个人认为统一化成分钟更好做。化成分钟之后再相减然后取余。
4-5思路:利用循环,设置中间数利用其改变其符号以及每项变化的数最后输出即可,并且注意浮点型与整形。
4-2-8思路:注意判断是否为闰年,建立数组定义每个月的天数,并且二月改为28或29天,再使用循环算出总的天数。
实现方法
7-7:将两个四位数字,用除和取余分离出小时和分钟,在把小时全化成分钟加在一起;之后两个单位为分钟的数字相减,得出的数再用60除和取余;最后输出是用%02保存两个位数。
4-5:设置一个为一的中间数,并在循环用该中间数以其相反数再对其赋值;这样就可以使每一项为一正一负。
4-2-8: 将每个月的不同的天数以数组赋值,判断闰年后,将二月用28天重新赋值二月;最后利用循环便可得出结果。
源程序(可只截取最关键的部分)
7-7
int a,b,c,d,e,f,g,h,o,z,x;
scanf("%d%d",&a,&b);
c=a/100;
d=a%100;
e=b/100;
f=b%100;
g=c60+d;
h=e60+f;
o=h-g;
z=o/60;
x=o%60;
printf("%02d:%02d",z,x);
4-2-8
int y,m,d,i;
int days=0;
int months[12]={31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d/%d/%d",&y,&m,&d);
if((y%4==0)&&(y%100!=0)||(y%400==0))
{
months[1]=29;
for(i=1;i<m;i++)
{
days=days+months[i];
}
}
else
{
for(i=1;i<m;i++)
{
days=days+months[i];
}
}
d=days+d;
printf("%d",d);
4-5
int i,n,a=1;
double s,b=1;
scanf("%d",&n);
s=0;
for(i=1;i<=n;i++)
{
s=s+(1.0/b)*a;
a=-a;
b=b+3;
}
printf("sum = %.3lf",s);
三.遇到的问题及解决方法,心得体会
首先,刚刚接触c语言,很多必须知道的知识点都还不了解,因此翻书查看基础教程是必要的。另外我在打代码的过程中经常出现定义整形,浮点型混乱的错误,并且一些题目要求的小细节往往非常重要 少一个空格会出现很大的问题。
在写代码的时候必须注意定义的字母要清晰且明确,不要连自己写的代码自己都摸不清楚。然后,做题过程中出现的难题要请教老师同学,并且掌握这些不明白的。