牵丝戏  

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

1  实验题目

7-7 计算火车运行时间(15 分)

本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。

4-5 求简单交错序列前N项和(15 分)

本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。

4-2-8 计算天数(15 分)

本题要求编写程序计算某年某月某日是该年中的第几天。

2.设计思路

7-7 计算火车运行时间

我一开始是两个数直接相减,得到的那个数用求余方法得到答案。

4-5 求简单交错序列前N项和

模仿C语言书上的方法进行求和。

4-2-8 计算天数

从学到的switch算法求得。

3.实现方法

7-7 计算火车运行时间

运用if语句和%求余限制答案而求得的,即用if语句对所得结果的小时数进行限制,防止边界问题。

4-5 求简单交错序列前N项和

这题关键在于i的定义和循环体的执行,及flag的转换。

4-2-8 计算天数

运用switch 算法,并且用if语句分清闰年的区别,在二月那的天数分清是28还是29天。

二.源程序(可只截取最关键的部分)

7-7 计算火车运行时间

#include <stdio.h>
int main (void)
{
int x,y,a,b;
scanf ("%d%d",&x,&y);
a=y/100-x/100;
b=y%100-x%100;
if(b<0)
{
b+=60;
a-=1;
}
printf ("%02d:%02d",a,b);
return 0;

}

 

4-5 求简单交错序列前N项和

#include <stdio.h>
int main (void)
{
int i,N,flag,denominator;
double sum,item;
scanf ("%d",&N);
sum=0;
flag=1;
denominator=1;
for (i=1;i<=N*3;i+=3)
{
item=flag*1.0/denominator;
sum=sum+item;
flag=-flag;
denominator=denominator+3;

}
printf ("sum = %.3lf\n",sum);
return 0;

}

 

4-2-8 计算天数

#include <stdio.h>
int main(void) {
int year, month, day;
int days;
int i;
scanf("%d/%d/%d", &year, &month, &day);
days = day;
for(i = 1; i < month; ++i) {
switch(i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days += 31;
break;
case 4:
case 6:
case 9:
case 11:
days += 30;
break;
case 2:
if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
days += 29;
else
days += 28;
}
}
printf("%d\n", days);
return 0;
}

 

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

火车的那题本来一直卡在边界值那,不懂得用if去限制,循环体有时因代码写错得到错误的答案;这些只能通过调试慢慢编程;

写代码要心细,认真,也要关注程序的边边角角的问题,并且通过平常的练习多多积累,才能提升自己的能力。

 

 

posted on 2017-10-29 18:19  牵丝戏  阅读(811)  评论(0编辑  收藏  举报