C语言程序100例之C#版-020
C程序源代码:
【程序20】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第10次落地时,共经过多少米?第10次反弹多高?
1.程序分析:见下面注释
2.程序源代码:
#include "stdio.h"
#include "stdio.h"
main()
{
float sn=100.0,hn=sn/2;
int n;
for(n=2;n<=10;n++)
{
sn=sn+2*hn;/*第n次落地时共经过的米数*/
hn=hn/2; /*第n次反跳高度*/
}
printf("the total of road is %f\n",sn);
printf("the tenth is %f meter\n",hn);
getch();
}
![](https://img-my.csdn.net/uploads/201207/28/1343479367_3990.png)
########################
C#语言程序:
using System;
class C320
{
static void Main()
{
float sn=100.0F,hn=sn/2;
int n;
for(n=2;n<=10;n++)
{
sn=sn+2*hn; /*第n次落地时共经过的米数*/
hn=hn/2; /*第n次反跳高度*/
}
Console.WriteLine("the total of road is {0}",sn);
Console.WriteLine("the tenth is "+hn+" meter ");
}
}
![](https://img-my.csdn.net/uploads/201207/28/1343479371_1350.png)
因为C和C#浮点类型的进度不一样,所有造成这样的结果;
把C#的代码中的单精度浮点改为双精度浮点后,结果如下:
using System;
class C320
{
static void Main()
{
double sn=100.0D,hn=sn/2;
int n;
for(n=2;n<=10;n++)
{
sn=sn+2*hn; /*第n次落地时共经过的米数*/
hn=hn/2; /*第n次反跳高度*/
}
Console.WriteLine("the total of road is {0}",sn);
Console.WriteLine("the tenth is "+hn+" meter ");
}
}
![](https://img-my.csdn.net/uploads/201207/28/1343479376_7198.png)