【C语言程序设计——枚举】得到 3 种不同颜色的球的可能取法(头歌实践教学平台习题)【合集】

简介: 本关任务要求从红、黄、蓝、白、黑五种颜色的球中,每次取出3个不同颜色的球,列举所有可能的排列情况。通过定义枚举类型和使用嵌套循环语句实现。枚举类型用于表示球的颜色,循环语句用于生成并输出所有符合条件的排列编程要求:在指定区域内补充代码,确保输出格式正确且完整。测试说明:平台将验证代码输出是否与预期一致,包括每种排列的具体顺序和总数。示例输出:```Output:1 red yellow blue2 red yellow white...60 black white bluetotal: 60```

 

目录😋

任务描述

相关知识

枚举类型定义

通过循环语句列举可能的排列

编程要求

测试说明

我的通关代码:

测试结果:


任务描述

本关任务:本关任务:口袋中有红、黄、蓝、白、黑 5 种颜色的球若干个。每次从口袋中先后取出 3 个球,问得到 3 种不同颜色的球的可能取法,输出每种排列的情况。

相关知识

为了完成本关任务,你需要掌握:

  1. 枚举类型定义
  2. 通过循环语句列举可能的排列
  • 枚举类型定义

       在程序设计过程中,如果一个变量仅在很小的范围内取值,则可以把它定义为枚举类型。使用枚举类型的变量能够提高程序的可读性。

       所谓“枚举”就是把所有可能的取值情况列举出来。例如,真和假表示了逻辑值的两种情况,男和女是性别的两种取值情况,选修课成绩有“优”“良”“中”“及格”“不及格”5种取值情况。


定义枚举类型的一般格式为:

       enum 枚举类型名{标识符1,标识符2,……,标识符n};

例如:
       enum bool{ false , true } ;


枚举变量的定义有3种形式(与结构体类似):

1.先定义枚举类型,再定义枚举变量

enum color
{
 red , green , blue , yellow , white 
} ;
enum color select , change ;
image.gif

2.定义枚举类型的同时定义枚举变量

enum color
{
 red , green , blue , yellow , white 
} select , change ;
image.gif

3.不指定枚举类型名,直接定义枚举变量

enum 
{
 red , green , blue , yellow , white 
} select , change ;
image.gif

(变量select是枚举类型enum color,它的值只能是red , green , blue , yellow , white)

  • 通过循环语句列举可能的排列
for(i=red;i<=black;i++)
    for(j=red;j<=black;j++)
    if(i!=j)
    {
        for(k=red;k<=black;k++)
        if((k!=i)&&(k!=j))
        {
            n=n+1;
            printf("%-4d",n);
            for(loop=1;loop<=3;loop++)
            {
                switch(loop)
                {
                    case 1:pri=i;break;
                    case 2:pri=j;break;
                    case 3:pri=k;break;
                }
                switch(pri)
                {
                    case red:printf("%-10s","red");break;
                    case yellow:printf("%-10s","yellow");break;
                    case blue:printf("%-10s","blue");break;
                    case white:printf("%-10s","white");break;
                    case black:printf("%-10s","black");break;
                }
            }
            printf("\n");
        }
    }
image.gif

编程要求

根据提示,在右侧编辑器代码文件中的 Begin-End 区间内补充代码,输出每种排列的情况。

测试说明

平台会对你编写的代码进行测试:

预期输出:

`Output:

1   red       yellow    blue

2   red       yellow    white

3   red       yellow    black

4   red       blue      yellow

5   red       blue      white

6   red       blue      black

7   red       white     yellow

8   red       white     blue

9   red       white     black

10  red       black     yellow

11  red       black     blue

12  red       black     white

13  yellow    red       blue

14  yellow    red       white

15  yellow    red       black

16  yellow    blue      red

17  yellow    blue      white

18  yellow    blue      black

19  yellow    white     red

20  yellow    white     blue

21  yellow    white     black

22  yellow    black     red

23  yellow    black     blue

24  yellow    black     white

25  blue      red       yellow

26  blue      red       white

27  blue      red       black

28  blue      yellow    red

29  blue      yellow    white

30  blue      yellow    black

31  blue      white     red

32  blue      white     yellow

33  blue      white     black

34  blue      black     red

35  blue      black     yellow

36  blue      black     white

37  white     red       yellow

38  white     red       blue

39  white     red       black

40  white     yellow    red

41  white     yellow    blue

42  white     yellow    black

43  white     blue      red

44  white     blue      yellow

45  white     blue      black

46  white     black     red

47  white     black     yellow

48  white     black     blue

49  black     red       yellow

50  black     red       blue

51  black     red       white

52  black     yellow    red

53  black     yellow    blue

54  black     yellow    white

55  black     blue      red

56  black     blue      yellow

57  black     blue      white

58  black     white     red

59  black     white     yellow

60  black     white     blue      

total:   60`

开始你的任务吧,祝你成功!


我的通关代码:

#include<stdio.h>
int main()
{
    enum Color{red,yellow,blue,white,black};
    enum Color i,j,k,pri;
    int n,loop;
    n=0;
    printf("Output:\n");
    // 请在这里补充代码
    /********** Begin *********/
    for(i = red;i<=black;i++){
        for(j = red;j<=black;j++){
            if(i != j){
                for(k = red;k <= black;k++){
                    if((k != i) && (k != j)){
                        n++;
  printf("%-4d",n);
    for(loop = 1;loop <=3;loop++){
        switch (loop){
            case 1:pri = i;break;
            case 2:pri = j; break;
            case 3:pri = k; break;
                    }
                    switch(pri){
                        case red:printf("%-10s","red");break;
                        case yellow:printf("%-10s","yellow");break;
                        case blue:printf("%-10s","blue");break;
                        case white:printf("%-10s","white");break;
                        case black:printf("%-10s","black");break;       
                    }
                 }
                 printf("\n");
             }
         }
      }
  }
}
    /********** End **********/
    printf("\ntotal:%5d\n",n);
    return 0;
}

image.gif


测试结果:

image.gif

image.gif

目录
相关文章
|
19小时前
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
32 23
|
19小时前
|
C语言
【C语言程序设计——函数】亲密数判定(头歌实践教学平台习题)【合集】
本文介绍了通过编程实现打印3000以内的全部亲密数的任务。主要内容包括: 1. **任务描述**:实现函数打印3000以内的全部亲密数。 2. **相关知识**: - 循环控制和跳转语句(for、while循环,break、continue语句)的使用。 - 亲密数的概念及历史背景。 - 判断亲密数的方法:计算数A的因子和存于B,再计算B的因子和存于sum,最后比较sum与A是否相等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台对代码进行测试,预期输出如220和284是一组亲密数。 5. **通关代码**:提供了完整的C语言代码实现
30 24
|
19小时前
|
C语言
【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】
本文档介绍了编程任务的详细内容,旨在运用枚举法求解硬币等额 - 循环控制语句(`for`、`while`)及跳转语句(`break`、`continue`)的使用。 - 循环嵌套语句的基本概念和应用,如双重`for`循环、`while`嵌套等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台将对编写的代码进行测试,并给出预期输出结果。 5. **通关代码**:提供完整的代码示例,帮助理解并完成任务。 6. **测试结果**:展示代码运行后的实际输出,验证正确性。 文档结构清晰,逐步引导读者掌握循环结构与嵌套的应用,最终实现硬币兑换的程序设计。
31 19
|
16小时前
|
存储 编译器 C语言
【C语言程序设计——选择结构程序设计】求一元二次方程的根(头歌实践教学平台习题)【合集】
本任务要求根据求根公式计算并输出一元二次方程的两个实根,精确到小数点后两位。若方程无实根,则输出提示信息。主要内容包括: - **任务描述**:使用求根公式计算一元二次方程的实根。 - **相关知识**:掌握 `sqrt()` 函数的基本使用方法,判断方程是否有实根。 - **编程要求**:根据输入的系数,计算并输出方程的根或提示无实根。 - **测试说明**:提供两组测试数据及预期输出,确保代码正确性。 - **通关代码**:包含完整的 C 语言代码示例,实现上述功能。 通过本任务,你将学会如何处理一元二次方程的求解问题,并熟悉 `sqrt()` 函数的使用。
15 5
|
16小时前
|
C语言
【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
这份文档详细介绍了编程任务的多个关卡,涵盖C语言的基础知识和应用。主要内容包括: 1. **目录**:列出所有关卡,如`print函数操作`、`转义字符使用`、`数的向上取整`等。 2. **各关卡的任务描述**:明确每关的具体编程任务,例如使用`printf`函数输出特定字符串、实现向上取整功能等。 3. **相关知识**:提供完成任务所需的背景知识,如格式化输出、算术运算符、关系运算符等。 4. **编程要求**:给出具体的代码编写提示。 5. **测试说明**:包含预期输入输出,帮助验证程序正确性。 6. 文档通过逐步引导学习者掌握C语言的基本语法和常用函数,适合初学者练习编程技能。
14 1
|
15小时前
|
C语言
【C语言程序设计——循环程序设计】统计海军鸣放礼炮声数量(头歌实践教学平台习题)【合集】
有A、B、C三艘军舰同时开始鸣放礼炮各21响。已知A舰每隔5秒1次,B舰每隔6秒放1次,C舰每隔7秒放1次。编程计算观众总共听到几次礼炮声。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。开始你的任务吧,祝你成功!
30 13
|
16小时前
|
存储 算法 安全
【C语言程序设计——选择结构程序设计】求阶跃函数的值(头歌实践教学平台习题)【合集】
本任务要求输入x的值,计算并输出特定阶跃函数的结果。主要内容包括: 1. **选择结构基本概念**:介绍if、if-else、switch语句。 2. **主要语句类型**:详细解释if、if-else、switch语句的使用方法。 3. **跃迁函数中变量的取值范围**:说明如何根据条件判断变量范围。 4. **计算阶跃函数的值**:通过示例展示如何根据给定条件计算函数值。 编程要求:在右侧编辑器Begin-End之间补充代码,实现阶跃函数的计算和输出。测试说明提供了多个输入及其预期输出,确保代码正确性。最后提供通关代码和测试结果,帮助理解整个过程。
13 0
|
15小时前
|
存储 安全 C语言
【C语言程序设计——选择结构程序设计】预测你的身高(头歌实践教学平台习题)【合集】
分支的语句,这可能不是预期的行为,这种现象被称为“case穿透”,在某些特定情况下可以利用这一特性来简化代码,但在大多数情况下,需要谨慎使用。编写一个程序,该程序需输入个人数据,进而预测其成年后的身高。根据提示,在右侧编辑器补充代码,计算并输出最终预测的身高。分支下的语句,提示用户输入无效。常量的值必须是唯一的,且在同一个。语句的作用至关重要,如果遗漏。开始你的任务吧,祝你成功!,程序将会继续执行下一个。常量都不匹配,就会执行。来确保程序的正确性。
23 10
|
16小时前
|
C语言
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
19 5
|
16小时前
|
存储 算法 安全
【C语言程序设计——选择结构程序设计】判断一个数是不是5和7的倍数(头歌实践教学平台习题)【合集】
本任务要求输入一个正整数,判断其是否同时是5和7的倍数,若是输出&quot;Yes&quot;,否则输出&quot;No&quot;。内容涵盖选择结构的基本概念、主要语句类型(if、if-else、switch)及条件判断逻辑,帮助理解编程中的分支执行与条件表达式。测试用例包括正数、负数及非倍数情况,确保代码逻辑严谨。通关代码示例如下: ```cpp #include &quot;stdio.h&quot; int main(){ int a; scanf(&quot;%d&quot;, &a); if (a &lt;= 0){ printf(&quo
13 0

热门文章

最新文章

下一篇
开通oss服务