代码改变世界

实验报告

2017-10-21 22:05  YELLOWHYH  阅读(392)  评论(0编辑  收藏  举报

一、实验题目,设计思路,实现方法
1、实验题目
4-2-5 逆序的三位数(10 分)
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
7-7 计算火车运行时间(15 分)
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
4-2-8 计算天数(15 分)
本题要求编写程序计算某年某月某日是该年中的第几天。

2、设计思路
4-2-5 逆序的三位数:
要先将一个三位数的个位十位百位分别拆出来,然后再组成一个三位数,而不是将个十百位上的数字简单对调。
7-7 计算火车运行时间:
先将两组四位数的时间换成两位两位的数值,然后再进行单位换算,然后时间进行加减。最后换成题目所需格式输出。
4-2-8 计算天数
先判断该输入年份是否为闰年,然后将输入月份前一个月的总天数相加,最后加上输入中的天数。
3、实现方法
4-2-5 逆序的三位数:
本题重点在于将该三位数的各个位的数字分离出来,故要用到取余或者整除的方法,然后在通过加法和乘法将所得三个数字重新组合成一个新的三位数。
7-7 计算火车运行时间:
该题难点在于将所给的四位数时间换成mm:nn的格式,运用取余和整除可以得到该样式的数据,还有一难点在于借位,即当到达时间比出发时间数值小的时候,需要向结束时间的小时借去1单位转化为分钟,这样可以避免出现了负数。
4-2-8 计算天数:
本题需要注意的是,每个月的天数不一样,还需判断是否是闰年,来确定2月份的天数,然后将月份的天数累加即可。

二、源程序
4-2-5 逆序的三位数
#include<stdio.h>
int main(){
int a,b,c,x,y,z;
scanf("%d",&a);
x=a/100;
b=a%100;
y=b/10;
z=b%10;
c=z100+y10+x;
printf("%d",c);
return 0;
}

   7-7 计算火车运行时间
   #include<stdio.h>

int main()
{
int a,b,h1,h2,m1,m2,x,y;
scanf("%d%d",&a,&b);
h1=a/100;
m1=a%100;
h2=b/100;
m2=b%100;
int t1=h160+m1;
int t2=h2
60+m2;
int t=t2-t1;
printf("%02d:%02d",t/60,t%60);
return 0;
}

    4-2-8 计算天数
    #include<stdio.h>

include<math.h>

int main()
{
int year,month,day;
int days=0;
int months[12]={31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d/%d/%d",&year,&month,&day);

if((year%4==0&&year%100!=0)||year%400==0)
{
	months[1]=29; 
	for(int i=1; i<month; i++)
	{
		days+=months[i];  
	}
}
else
{
	for(int i=1; i<month; i++)
	{
		days+=months[i];  
	}
}
days+=day;
printf("%d\n",days); 

return 0;

}
三、遇到的问题及解决方法,心得体会
打代码是一个需要十分耐心,细致的过程,有时候经常会出现细节错误,或者逻辑错误,这时候就需要我们静下心来思考,寻找错误在哪里,一遍一遍的看,一遍一遍的调试,如果这个知识点不懂,要返回课本或者看教学视频,就算是百度也不要放着不看,然后用自己的思路再把代码打一遍。