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);}
第十一讲 计数问题二排列组合是计数问题中的常见题型,要利用好这部分知识,先要对乘法原理有一个深刻的认识。大家一定要区分清:排列计顺序,组合不计顺序。有些题往往要把这两个......
第一讲 几何图形中的计数问题(一)姓名:__________ 【教学目标】1、经历解题理解图形计数的规律及特点。2、通过学习体会线段计数的原理并能推广到角、共顶点的三角形,能够解决一......
小班语言简单教案在教学工作者开展教学活动前,常常要写一份优秀的教案,借助教案可以有效提升自己的教学能力。那么大家知道正规的教案是怎么写的吗?下面是小编为大家收集的小班......
刀豆文库小编为你整合推荐8篇中班语言简单教案,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......
C语言小程序之简单计算器实现简单四则运算/*时间:2013年7月7日功能:实现简单计算器四则运算功能 */# include //# include int main(void){float a,b,result;char sym;int i;A......