c语言简单计数问题_简单计数器c语言

其他范文 时间:2020-02-27 15:08:32 收藏本文下载本文
【www.daodoc.com - 其他范文】

c语言简单计数问题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“简单计数器c语言”。

一、统计与计数问题

方法:计数变量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(“Input 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=%dn”,posn,negn);}

用典型循环结构

(二)改写例1程序

#include “stdio.h” void main(){

int n,posn,negn;

double a;

n=posn=0;

printf(“Input real numbers:n”);

scanf(“%lf”,&x);

while(a!=0&&n

if(a>0)

posn++;

n++;

if(n

scanf(“%lf”,&a);

}

negn=n-posn;

printf(“posn=%d,negn=%dn”,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='A'&&ch

n++;

}

printf(“Number of letters is %d.n”,n);}

二、数列求和/求积:累加/累乘/递推法 1.基本累加/累乘问题

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

例1.输入n个100分制成绩(用整型),计算并输出平均成绩,要求输出精确到两位小数。#include “stdio.h” #define n 10 void main(){ double av = 0;printf(“Input %d int numbers:”,n);

for(i = 1;i

scanf(“%d”,&score);

av += score;}

av /= n;

printf(“av=%.2fn”,av);}

2.数列计算,求和/求积 例2:教材P116例题6.6 点评:该题数列通项比较简单,仅对分母进行递推计算,直接计算通项,累加通项;注意数列正负交叉项的控制方法。

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

分析:令

有#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=.2fn”,s);}

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

分析:#include “stdio.h” #include “math.h” void main(){

double s,x,a;

int k;

printf(“Input x =”);

scanf(“%lf”,&x);

s = 0;

a = 1;

k = 0;

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

s += a;

k += 2;

a *=-x * x / k /(k-1);

}

printf(“s=%.6fn”,s);}

例5 计算fibonacci数列。例6 教材P116 例6.7 例6 输入n,m,计算组合数P=C(n,m)。

#include “stdio.h” void main(){

double p = 1.0;int m,n,k;

printf(“Input n,m:”);

scanf(“%d%d”,&n,&m);

if(n n){ printf(“Input data aren't correct.n”);

return;

}

if(n-m

for(k = 1;k

p *=(double)(n-m+k)/k;

/*此处为什么要强制类型转换?*/

printf(“c(%d,%d)=%.0fn”, n,m,p);}

#include “stdio.h” void main(){

int n,i;

double a,x,y;

printf(“Input x,n:”);

scanf(“%lf%d”,&x,&n);

printf(“Input a0,a1,…,a%dn,n);

y=0;

for(i = 0;i

scanf(”%lf“,&a);

y= y * x + a;

}

printf(”y=%.2fn“,y);}

/*输入一行16进制字符串,变成长整数输出*/ #include ”stdio.h“ void main(){

long y=0;

int x=16,a;

char c;

printf(”Input a hex number:“);

while(1){

c=getchar();

if(c =='n')break;

if(c >='0'&&c

a=c-48;

else if(c >='a'&&c

a=c-87;

else if(c >='A'&&c

a=c-55;

else

break;

y=y*x+a;

}

printf(”y=%ldn",y);}

下载c语言简单计数问题word格式文档
下载c语言简单计数问题.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文