循环结构程序设计-1

第1关:小球自由落体运动

一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 结果保留两位小数。

输入 从键盘输入MN的值。

输出 它在第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关:最大公约数和最小公倍数

本关任务:输入两个正整数mn,求其最大公约数和最小公倍数。

输入两个正整数mn,求其最大公约数和最小公倍数。

输入 从键盘上任意输入两个数。

输出 分两行输出,第一行输出:最大公约数是多少;第二行输出最小公倍数是多少。

#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+......的值

本关任务:键盘输入正整数an,编程 s=a+aa+aaa+aaaa+aa...ana)的值。 例如: a=2n=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;
	}

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

又是被bug折磨的一天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值