c语言变量一次加8,c语言简单计数问题(8页)-原创力文档

一、统计与计数问题

方法:计数变量c的初值为0,每输入一个数据,进行必要判断后,若输入的数据满足统计条件,则计数变

量c自加1,这样当对所有输入进行判断后,计数变量c的值就是统计的结果。

例1 :输入若干非0实数,直到输入0时停止,要求输入的实数最多不超过20个,统计其中正数的个数,

负数的个数。

分析:

设三个计数变量:

n-统计输入的数据总个数(为什么有必要?) posn—统计正数的数目

negn—统计负数的数目

#include "stdio.h"

void main(){

int n,posn,negn;

double a;

n=posn=0;

printf("lnput real numbers:\n");

while(1){ /*典型循环结构(一 )*/ scanf("%lf",&a);

if(a==0)

break;

if(a>0)

posn++;

n++;

if(n>=20)

break;

}

negn=n-posn; printf("posn=%d,negn=%d\n",posn,negn);

}

典型循环结构(一)典型循环结构(二)

典型循环结构(一)

典型循环结构(二)

预输入一个数据统计或其它处理再输入一个数据

预输入一个数据

统计或其它处理

再输入一个数据

用典型循环结构(二)改写例 1程序

#include "stdio.h"

void main(){

int n,posn,negn;

double a;

n=posn=0;

printf("lnput real numbers:\n");

scanf("%lf", &x);

while (a!=0&&n<20){

if(a>0)

posn++;

n++;

if (n<20)

scanf("%lf",&a);

}

negn=n-posn;

printf("posn=%d,negn=%d\n",posn,negn);

}

例2 :输入一行字符,统计其中的英文字母个数。

提示:即输入到字符’\n'时停止输入

#include "stdio.h"

void main(){

char ch;

int n = 0;

printf("Input a string:\n");

while(1){

ch=getchar();

if(ch =='\n')

break;

if(ch >='a '&&ch<='z'||ch>='A'&&ch<='Z')

n++;

}

printf("Number of letters is %d.\n",n);

}

二、数列求和/求积:累加/累乘/递推法

1?基本累加/累乘问题

s = 1 + 2 + A + 用二土,

f=l

p = lx2x3xA xk = n/ = ?!

r?=i

累加求和与求均值

累加法:求和变量初值一般为0,每循环一次,求和变量自加一个数据,这样循环结束后,求和变量的值

即为这些数据的和。

累乘法:累乘变量初值一般为 1,每循环一次,累乘变量自乘一个数据,这样当循环结束的时候,累乘变 量的值即为这些数据连乘的积。

例1输入n个100分制成绩(用整型),计算并输岀平均成绩,要求输岀精确到两位小数。

#include "stdio.h"

#define n 10 void main(){

double av = 0;

printf("lnput %d int numbers:",n);

for(i = 1;i< = n;i++) {

scanf("%d", &score);

av += score;

}

av /= n;

printf("av=%.2f\n",av);

}

2?数列计算,求和/求积

例2:教材P116例题6.6

点评:该题数列通项比较简单,仅对分母进行递推计算,直接计算通项,累加通项;注意数列正负交叉项的

控制方法。

例3:计算下面的级数,直到最后一项的绝对值小于10-6时停止计算,输岀计算结果。

例3:计算下面的级数,直到最后一项的绝对值小于

10-6时停止计算,输岀计算结果。

1尤

4

玄A

]+ — +

一 +

一 +

k A

1!

2!

3!

4!

73

#include "stdio.h"

#include "math.h"

void main(){

double x,s,a;int k; printf("Input x="); scanf("%lf", &x);

a=1;

s=0;

k=0;

while(fabs(a)>1e-6)){

s+=a;

k++;

a=x/k*a;

}

printf("s=.2f\n",s);

}

10-6时停止计算,输岀计算结果。例4:输入x计算以下算式,要求计算到最后一项小于是

10-6时停止计算,输岀计算结果。

分析:

#include

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值