第1关:小球自由落体运动
一球从M
米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N
次落地时反弹多高?共经过多少米? 结果保留两位小数。
输入 从键盘输入M
和N
的值。
输出 它在第N
次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开,放在一行。
#include<stdio.h>
int main(void)
{
int m,n;
scanf("%d %d",&m,&n);
float sum,h,a;
sum=m;
h=m/2;
for(int i=2;i<=n;i++){
sum = 2*h+sum;
h=h/2;
}
printf("%.2f %.2f",h,sum);
return 0;
}
第2关:求解出n以内所有能被5整除的正整数的乘积
本关任务:求解出n
以内(包含n
)所有能被5
整除的正整数数的乘积s
。
#include<stdio.h>
int main(void)
{
int n,i,s=1;
scanf("%d", &n);
for(i=1;i<=n;i++){
if(i%5==0){
s=s*i;
}
}
printf("%d",s);
return 0;
}
第3关:最大公约数和最小公倍数
本关任务:输入两个正整数m
和n
,求其最大公约数和最小公倍数。
输入两个正整数m
和n
,求其最大公约数和最小公倍数。
输入 从键盘上任意输入两个数。
输出 分两行输出,第一行输出:最大公约数是多少;第二行输出最小公倍数是多少。
#include<stdio.h>
int main(void)
{
/*********Begin*********/
int m,n,min,max,i;
scanf("%d %d",&m,&n);
//m,n的最大公约数
//先找到m,n中最小的那个数
min = m<n?m:n;
max = m>n?m:n;
for(i=min;i>0;i--){
if(m%i==0&&n%i==0){
printf("最大公约数是:%d\n",i);
break;
}
}
for(i=1;i<=min;i++){
if((m*i)%n==0||(n*i)%m==0){
printf("最小公倍数是:%d",max*i);
break;
}
}
//m,n的最小公倍数
/*********End**********/
return 0;
}
第4关:字符串中各类字符数的统计
本关任务:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。
根据提示,在右侧编辑器Begin-End
处补充代码,输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。
输入
一行字符。
输出
统计每种字符的个数值。
#include<stdio.h>
#include<string.h>
int main(void)
{
/*********Begin*********/
char s[100];
int len,i;
int c=0;
int num=0;
int kong=0;
int other=0;
fgets(s,sizeof(s),stdin);
len = strlen(s);
for(i=0;i<len;i++){
if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z'){
c++;
//printf("%d\n",c);
}else if(s[i]>='0'&&s[i]<='9'){
num++;
//printf("%d",num);
}else if(s[i]==' '){
kong++;
//printf("%d",kong);
}else if(s[i]!='\n'){
other++;
}
}
printf("%d %d %d %d",c,num,kong,other);
/*********End**********/
return 0;
}
第5关:求sn=a+aa+aaa+aaaa+......的值
本关任务:键盘输入正整数a
和n
,编程 s=a+aa+aaa+aaaa+aa...a
(n
个a
)的值。 例如: a=2
,n=5
时,表示计算由2
组成的数的和:2+22+222+2222+22222
( 此时 共有5
个数相加)。
输入:5
3
表示3
个由5
组成的数相加,即计算5+55+555
的值,输出:615
输入:5
4
表示计算5+55+555+5555
的值,输出:6170
#include<stdio.h>
int main(void)
{
/*********Begin*********/
int a,x;
int n;
int sum=0;
scanf("%d %d",&a,&n);
x=a;
for(int i=0;i<n;i++){
sum=sum+a;
a=a*10+x;
//printf("a=%d\n",a);
}
printf("%d",sum);
/*********End**********/
return 0;
}