C语言程序设计第四版,第四章while循环练习

#include<stdio.h>
#include<math.h>
int main()
{
int i = 1, sum = 0,t=1; //1.计算1-20的阶乘
while (i<=20)
{
t = t * i; //t为当前项
sum = sum + t; //利用自加循环达到累乘的目的
i++;
}
printf("%d\n", sum);
return 0;

2.计算Π:3.14
float i = 1.0, t = 1.0,m=1.0,pi=0,sum=0; //公式Π=4*(1-1/3+1/5+…)
while (fabs (i) >= 1e-6) //要求最后一项的值小于1e6
{
sum = sum + i; /注意将谁作为当前值,应该将当前值另存为一个数,不要和上面参与计算的变量有联系/
t = t + 2;
m = -m; //利用一次次的赋值来改变正负
i = m / t; /如果这里t=m/t,t作为当前值的话无法输出。因为程序是由上到下运行的,这将导致t被重新赋值,然后结果就会出错/
}
pi = 4 * sum;
printf(“Π=%.6f\n”, pi);
return 0;

float s = 1; //这个程序比我写的好。因为这个少了一个赋值,少用了一个储存。
float pi = 0;
float i = 1.0;
float n = 1.0;
while (fabs(i) >= 1e-6)
{
pi = pi+i;
n = n + 2;
s = -s; // 这里设计的很巧妙,每次正负号都不一样
i = s / n;
}
pi = 4 * pi;
printf(“pi的值为:%.6f\n”, pi);
return 0;

3.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…编写一个程序,求这个序列 的前20项之和

float a=2.0, b=1.0,i=1.0,sum=0,t; /a:分子,b:分母,i:用于记步.又从题目可以看出,分子和分母需要置换,所以将t作为中间变量/
while (i<=20)
{
sum = sum + a / b;
t = a;
a = a + b; //注意,这里的顺序,先得是a=a+b,再把a的值赋给b,不然的话a=a+b就是a=a+a=2*a,结果就会出错。
b = t; //应该养成从上到下读程序的习惯!
i++;
}
printf(“sum=%.6f\n”, sum);
return 0;

//4.输入一行字符,分别统计其中的英文字母,数字和其他字符的个数
char c;
int zimu=0, shuzi=0, qitazifu=0; //可将这些字母,数字等等看作一个个整体,然后给它们赋值,相当于给它们计数
printf(“请输入一行字符\n”);
while ((c=getchar())!=’\n’)
{
if ((c>=‘a’&&c<= ‘z’)||(c>=‘A’&& c <= ‘Z’))//范围要一致,不然可能会出错
{
zimu++;
}
else if (c>=‘0’&&c<=‘9’)
{
shuzi++;
}
else
{
qitazifu++;
}
}
printf(“英文字母的个数:%d,数字的个数:%d,其他字符的个数:%d\n”, zimu, shuzi, qitazifu);
return 0;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值