下面给出我的代码;
#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语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:762 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:604 |
字符串问题 (C语言代码)浏览:1635 |
【亲和数】 (C语言代码)浏览:908 |
蛇行矩阵 (C语言代码)浏览:792 |
C语言程序设计教程(第三版)课后习题5.7 (Java代码)浏览:910 |
printf基础练习2 (有点不明白)浏览:887 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:910 |
wu-淘淘的名单 (C++代码)浏览:1532 |
图形输出 (C语言代码)浏览:1422 |