程序设计基础 实验:循环综合练习

程序设计基础

实验:循环综合练习

一、实验目的

1、掌握按照一定的格式输出相应的数据类型,能正确设计顺序结构的程序。

2.综合应用循环结构的控制语句:while语句、do…while语句、for语句的用法。

3.掌握break、continue语句的功能和语法格式并综合应用。

4.能够根据循环结构的要求正确选取循环语句来实现循环,掌握循环程序的执行过程。

二、实验原理

使用循环可以多次重复地执行多条语句,这里的“多条语句”称为循环体。在C语言中,    可以使用三种循环,分别是:while、do...while和for。

语法格式分别为:

1.do 语句 while (表达式);

2.while (表达式)语句

3.for ([表达式1];[表达式2];[表达式3])

          语句

三、实验设备

Win系统电脑一台

四、实验过程(程序清单)

1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#include<stdio.h>

int main(){

    int i,j,k;

    int count=0;

    for(i=1;i<5;i++){

        for(j=1;j<5;j++){

           for(k=1;k<5;k++){

               if(i!=j && i!=k && j!=k){

                   printf("%d%d%d\n",i,j,k);

                   count++;

               }

           }

        }

    }

    printf("count=%d\n",count);

    return 0;

}
2.输出9*9口诀表。
#include<stdio.h>

int main(){

    int i=1,j=1;

    for(i=1;i<=9;i++){

        for(j=1;j<=2*i-1;j++){

           printf("%d*%d=%d ",i,j,i*j);

        }

        printf("\n");

    }



    for(i=1;i<=9;i++){

        for(j=1;j<=2*i-1;j++){

           printf("%d*%d=%d ",j,i,j*i);

        }

        printf("\n");

    }

     return 0;

}
3.问题描述:求两个正整数的最大公约数和最小公倍数。
#include<stdio.h>

int main(){

    int a,b,n1,n2,t;

    printf("请输入两个数字:\n");

    scanf("%d %d",&n1,&n2);

    if(n1){

        t=n1;

        n1=n2;

        n2=t;

    }

    a=n1;

    b=n2;

    while(b!=0){

        t=a%b;

        a=b;

        b=t;

    }

    printf("这两个数的最大公约数是%d\n",a);

    printf("这两个数的最小公倍数是%d\n",n1*n2/a);

    return 0;

    }
4.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
#include<stdio.h>

int main(){

    char c;

    int letters=0,space=0,digit=0,other=0;

    printf("请输入一行字符:");

    while ((c=getchar())!='\n'){

        if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= 'Z'){

        letters++;

        }

        else if(c==' '){

           space++;

        }

        else if (c >= '0'&&c <= '9'){

           digit++;

        }else{

           other++;

        }

    }

    printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符:%d\n",letters,space,digit,other);

    return 0;

}
5.一个球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹,求它在第10次落地时共经过多少米,第10次反弹多高。
#include <stdio.h>

int main(){

//    总高度

      double total_m = 100.0;

//    小球经历的米数

      double total_sum = 0.0;

      for (int i = 0; i < 10; i++)

      {

        total_sum += total_m;

        total_m /= 2;

        total_sum += total_m;

      }

//    不需要计算第10次的反弹高度,所以减去

      total_sum -= total_m;

      printf("小球总共经历%lf米\n", total_sum);

      printf("第10次反弹%lf米\n", total_m);

      return 0;

}
6.输出以下菱形图案。
#include<stdio.h>

int main(){

      int i=1,j=1,k;

      for(i=1;i<=4;i++){

        for(k=1;k<=6-i;k++){

           printf(" ");

        }

        for(j=1;j<=2*i-1;j++){

           printf("*");

        }

        printf("\n");

      }

      for(i=1;i<=3;i++){

        for(k=1;k<=2+i;k++){

           printf(" ");

        }

        for(j=1;j<=6-(2*i-1);j++){

           printf("*");

        }

        printf("\n");

      }

      return 0;

}

五、实验结果(效果截图)

1.

2.

3.

4.

5.

6.

 

六、实验心得

1.保存代码的时候需要做详细的注释,方便复习查找。

2.记忆代码,多用电脑进行操作,加强记忆。

3.翻阅教材,加深印象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来为您写出游戏规则的 C 语言代码: ```c #include <stdio.h> #define MAX_BALLS 14 // 最大小球数量 #define MAX_SCORE 100 // 最大得分 int main() { int balls[MAX_BALLS] = { 5, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1 }; // 存储每个小球片段的长度 int score = 0; // 当前得分 int num_balls = MAX_BALLS; // 剩余小球数量 int selected_ball; // 用户选择的小球 // 游戏循环 while (num_balls > 0 && score < MAX_SCORE) { // 显示当前状态 printf("当前得分:%d\n", score); printf("剩余小球数量:%d\n", num_balls); printf("当前小球状态:"); for (int i = 0; i < num_balls; i++) { printf("%d ", balls[i]); } printf("\n"); // 等待用户入 printf("请选择要消除的小球(入小球编号):"); scanf("%d", &selected_ball); // 消除小球片段 int start = selected_ball - 1; int end = selected_ball; while (start >= 0 && balls[start] == balls[selected_ball - 1]) { start--; } while (end < num_balls && balls[end] == balls[selected_ball - 1]) { end++; } int num_removed = end - start - 1; score += num_removed * num_removed; for (int i = start + 1; i < end; i++) { for (int j = i; j < num_balls - 1; j++) { balls[j] = balls[j + 1]; } } num_balls -= num_removed; } // 游戏结束 printf("游戏结束,您的得分是:%d\n", score); return 0; } ``` 这段代码使用了一个数组 `balls` 来存储每个小球片段的长度。游戏循环中,首先会显示当前状态,然后等待用户入选择的小球。接着,程序会根据用户选择的小球,找到该小球所在的小球片段,并将该小球片段从数组中删除。最后,程序会更新当前得分和剩余小球数量,并继续下一轮游戏。当剩余小球数量为 0 或当前得分达到最大得分时,游戏结束。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值