1,编一个程序,输入一个正数,对该数进行四舍五入到个位数的运算。例如,实数12.56经过四舍五入运算,得到结果13;而12.46经过四舍五入运算,得到结果12。
1.Console.WriteLine("请输入一个正数");
2.double i=Convert.ToDouble(Console.ReadLine());//或者 double i=double.Parse(Console.ReadLine());
3.int e=(int)i;//将double类型强制转化为int类型
4.if(i-e>=0.5)
5.{
6. i=e+1;
7.}
8.else
9.{
10. i=e;
11.}
12.Console.WriteLine(i);
解题思路:判断正数十分位上的数是否>=5,如果成立,则该正数加1,然后舍去小数位;不成立,则直接舍去小数位,然后输出;要注意的两个点:1.将输入的值接收为double类型 有两种方法:Convernt.ToDouble()或者double.Parse();2.强制类型转换 将double类型的值i强制转换为int型 只需在i前面添加(int);要注意:int类型占4个字节(32位)(1字节=8位 1byte=8bit), double 类型占8个字节(64位),int值(低精度整数型)转化为double类型(高精度浮点型)不会丢失精度,但是double类型高精度转化为低精度是会丢失精度的。
还有一种思路,大同小异:得到这个正数的十分位,判断其是否大于等于5,(这种思路写的稍稍复杂了点,不够精炼,没错,这就是我自己想的)代码如下:
1.Console.WriteLine("请输入一个正数");
2.double i=Convert.ToDouble(Console.ReadLine());
3.int j=(int)(i*10%10);//注意:这里强制
4.if(j>=5)
5.{
6. i=(int)i+1;
7.}
8.else
9.{
10. i=(int)i;
11.}
12.Console.WriteLine(i);
2,编一个程序,用while循环语句来计算1+1/2+2/3+3/4+...+99/100之和。
1.double i=0,sum=0;
2.while(i<100)
3.{
4. if(i==0)
5. {
6. sum=1;
7. }
8. else
9. {
10. sum+=i/(i+1);
11. }
12. i++;
13.}
14.Console.WriteLine(sum);
上面的代码是我自己写的,其实可以更精简一点。代码如下:<