一、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
#include<stdio.h>
int main ()
{char c;int letter=0,number=0,space=0,other=0;printf("请输入一行字符:\n");while((c=getchar())!='\n'){if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letter++;else if(c==' ')space++;else if(c>='0'&&c<='9')number++;elseother++;}printf("字母数:%d\n数字数:%d\n空格数:%d\n其他字符数:%d\n",letter,number,space,other);return 0;
}
运行结果:
二、求1!+2!+3!+4!+···+20!
#include<stdio.h>
int main()
{int a;double b=1;double sum=0;for(a=1;a<=20;a++){b=a*b;sum=sum+b;}printf("sum=%e\n",sum);return 0;
}
运行结果:
三、一个球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米,第10次反弹多高。
方法一:
#include <stdio.h>
int main()
{int a;float s=0;float h=100.0;for(a=1;a<=10;a++){s=s+h;//下来经过米数h=h/2;//反弹后达到最高的高度s=s+h;//反弹经过米数}s=s-h;//减去第十次反弹的高度printf("第十次落地时经历米数s=%f\n第十次反弹高度h=%f\n",s,h);return 0;
}
运行结果:
方法二:
#include<stdio.h>
int main()
{double h=100.0,s=0.0,b=100.0;//b为第一次落地小球经过的距离int a=1;for(;a<=10;a++){h/=2;s=s+2*h;//s为小球从第一次落地开始算起小球经过的距离,两倍h表示小球反弹后小球经过上升和下降的距离}s=b+s;s=s-2*h;//减去第十次小球落地反弹上升和下降的距离printf("第十次落地时经历米数s=%f\n第十次反弹高度h=%f\n",s,h);return 0;
}
运行结果: