下面给出我的代码;
#include <stdio.h>
#include <math.h>
void main()
{
double h,sum=0;
int M,N;
scanf("%d %d",&M,&N);
if(N==1)
{
h=M/2;
sum=M;
}
else
{
for(int i=2;i<=N;i++)
{
h=M/(pow(2,i));
sum=sum+4*h;
}
sum=sum+M;
}
printf("%.2lf %.2lf\n",h,sum);
}
显然,这一串代码是生涩的,但是很好的反映了程序员初期的逻辑思维;
那么再看看改进代码;
#include<stdio.h>
int main()
{
int size,i;
double iterm=0,sum=0,high;
scanf("%lf %d",&high,&size);
iterm=high;
for(i=0;i<size;i++)
{
if(i==0)
sum+=iterm;
else sum+=2*iterm;
iterm=(double)iterm/2;
}
printf("%0.2lf %0.2lf",iterm,sum);
return 0;
}
很明显,此代码的逻辑更清晰了;
0.0分
1 人评分
钟神赛车 (C++代码)浏览:866 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:505 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:900 |
C语言训练-数字母 (C语言代码)浏览:649 |
WU-C语言程序设计教程(第三版)课后习题12.1 (C++代码)浏览:940 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:689 |
整数平均值 (C语言代码)浏览:786 |
简单的a+b (C语言代码)浏览:416 |
1231题解(注意理解“输入多个测试实例”)浏览:788 |
班级人数 (C语言代码)浏览:927 |