C语言实验设计
一.实验题目,设计思路,实现方法
7-4 计算分段函数[2](10 分)
本题目要求计算下列分段函数f(x)的值:
注:可在头文件中包含math.h
,并调用sqrt
函数求平方根,调用pow
函数求幂。
思路:这道题考察了if else语句的用法,具体思路应该是分成x>=0 x<0两种情况,来分别求得X的值
7-7 计算火车运行时间(15 分)
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
输入格式:
输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。
输出格式:
在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。
思路:这道题的关键在于时间的转化,输入的时间都为四位数首先应转换单位,其次最重要的是考虑借位的问题,时间不够减的时候应该小时来凑。弄清楚这些之后,问题也就迎刃而解了。
4-2-6 到底是不是太胖了(10 分)
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。
输入格式:
输入第一行给出一个正整数N
(≤ 20)。随后N
行,每行给出两个整数,分别是一个人的身高H
(120 < H < 200;单位:厘米)和真实体重W
(50 < W ≤ 300;单位:市斤),其间以空格分隔。
输出格式:
为每个人输出一行结论:如果是完美身材,输出You are wan mei!
;如果太胖了,输出You are tai pang le!
;否则输出You are tai shou le!
。
思路:好题!这道题考的点十分细致,稍不注意就可能会出错,应考虑好if else语句如何与for语句结合起来。
二.源程序
7-4 计算分段函数[2]
#include<stdio.h>
#include<math.h>
int main()
{
double x,a,b,c;
scanf("%lf",&x);
a=sqrt(x);
b=pow(x+1,2);
c=b+2*x+1/x;
if(x>=0)
{
printf("f(%.2f) = %.2f",x,a);
}
else
{
printf("f(%.2f) = %.2f",x,c);
}
return 0;
}
7-7 计算火车运行时间
#include<stdio.h>
int main()
{
int start,end,hourS,hourE,minS,minE,hour,min;
scanf("%d%d",&start,&end);
hourS=start/100;
hourE=end/100;
minS=start%100;
minE=end%100;
if(minE<minS)
{
min=minE+60-minS;
hour=hourE-1-hourS;
}
else
{
min=minE-minS;
hour=hourE-hourS;
}
printf("%02d:%02d",hour,min);
return 0;
}
4-2-6 到底是不是太胖了
#include<stdio.h>
#include<math.h>
int main()
{
double n,i,h,w,s,d,e;
scanf("%lf",&n);
for(i=1;i<=n;i++)
{
scanf("%lf%lf",&h,&w);
s=(h-100.0)*0.9*2.0;
d=fabs(w-s);
e=s*0.1;
if(d<e)
{
printf("You are wan mei!\n");
}
else if(w>s)
{
printf("You are tai pang le!\n");
}
else
{
printf("You are tai shou le!\n");
}
}
return 0;
}
三.遇到的问题及解决方法,心得体会
做题时遇到了很多问题,最开始的for语句 if else语句不会用,到借位不知怎么弄,后来的pow sqrt fabs函数,这些新的知识聪慧不懂到翻书或是查资料弄懂,期间的过程是很美妙的。
这也体现了,一个学习由不懂到懂得过程,重要的不是结果,而是解题时的乐趣。就像最后一道,是不是太胖了这道题一样,必须极为的认真细致,不能分心,一不留神可能就出现错误,而一旦出现错误,纠错的过程是不容易的。
在以后的做题中,我应该注意的是题目输入输出的要求,并且注意分号等关键字符不能遗漏,这些看似简单,实则是很多人出错的关键!!!