一.求1+2+3+…+100
#include <stdio.h>
int main()
{
int i, sum = 0;
for ( i = 0; i <= 100; i++)
{
sum += i;
}
printf("%d\n", sum);
}
二.求1+1/2+1/3+…+1/20?
#include <stdio.h>
int main()
{
int i = 1;
double sum = 0;
while (i <= 20)
{
sum += 1.0 / i;
++i;
}
printf("%f\n", sum);
三.求1/2-2/3+3/4-…+19/20
#include <stdio.h>
int main()
{
int i = 1;
double sum = 0.0, j = 1.0;
while (i <= 20)
{
sum += j / (i + 1.0);
++i;
j = -j;
}
printf("%f\n", sum);
}
四.完成如下实例
1.求阶乘和
#include <stdio.h>
int main()
{
int i = 1,sum0 = 0,sum1=1;
while (i <= 12)
{
sum1 *= i;
sum0 += sum1;
++i;
}
printf("%d\n", sum0);
}
2.求阶乘倒数和
#include <stdio.h>
int main()
{
int i = 1;
double sum0 = 0, sum1 = 1;
while (i <= 7)
{
sum1 *= i;
sum0 += 1.0 / sum1;
++i;
}
printf("%d\n", sum0);
}
3.求阶乘倒数正负和
#include <stdio.h>
int main()
{
int i = 1;
double sum0 = 1.0, sum1 = 1.0, j = -1.0;
while (i <= 8)
{
sum1 *= 2;
sum0 += j / sum1;
++i;
j = -j;
}
printf("%f\n", sum0);
}
贺老师解法思路,定义变量m=1;
#include <stdio.h>
int main( )
{
int i,m=1; //m表示2的幂,1为2的0次幂,与循环相符
double sum=0, s=1.0; //s直接取double型,保证除的结果是浮点型
for(i=0; i<=8; ++i)
{
sum=sum+s/m;
m*=2; //2的i次幂由此计算得到
s=-s;
}
printf("%f\n", sum);
return 0;
}
五.程序阅读
#include <stdio.h>
int main()
{
int i, m = 1;
for (i = 5; i >= 1; i--)
{
m = (m + 1) * 2;
printf("m=%d\n", m);
}
}
运行结果:
m=4
m=10
m=22
m=46
m=94
#include <stdio.h>
int main()
{
int i = 0, s = 0;
do
{
s += i * 2 + 1;
printf("i=%d,s=%d\n", i, s);
i++;
} while (s < 10);
return 0;
}
运行结果:
i=0,s=1
i=1,s=4
i=2,s=9
i=3,s=16
#include <stdio.h>
int main()
{
int k = 1, n = 463;
do
{
k *= n % 10; //3,18,72
n /= 10;
} while (n);
printf("%d\n", k);
return 0;
}
运行结果:
72
六.实践项目
求1/3-3/5+5/7-7/9…+19/21
#include <stdio.h>
int main()
{
double i, sum = 0, s = 1.0;
for (i = 1; i <= 10; ++i)
{
sum = sum + s * (2 * i - 1) / (2 * i + 1);
s = -s;
}
printf("%f\n", sum);
}