假设有5层货架,每次货架都可以放香蕉、橘子、苹果、梨,柠檬,但是只能选一种放置;请你用C语言实现可以自由选择的配置,层数和水果种类要用到枚举类型,并将这两种枚举封装成结构体,该结构体包含两种枚举类型
时间: 2024-03-02 18:49:36 浏览: 44
行业分类-设备装置-一种承放平台设有LED灯的货架.zip
好的,这里是用C语言实现的代码:
```c
#include <stdio.h>
// 枚举水果种类
typedef enum {
BANANA,
ORANGE,
APPLE,
PEAR,
LEMON
} FruitType;
// 枚举货架的层数
typedef enum {
SHELF1,
SHELF2,
SHELF3,
SHELF4,
SHELF5
} ShelfLevel;
// 枚举结构体
typedef struct {
FruitType fruitType;
ShelfLevel shelfLevel;
} ShelfConfig;
int main() {
// 创建5个货架
FruitType shelf[5][5];
// 初始化每个货架
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
shelf[i][j] = BANANA; // 默认放香蕉
}
}
// 修改第一层货架上的水果种类
ShelfConfig shelfConfig = {ORANGE, SHELF1};
shelf[shelfConfig.shelfLevel][0] = shelfConfig.fruitType;
shelf[shelfConfig.shelfLevel][1] = APPLE;
shelf[shelfConfig.shelfLevel][2] = PEAR;
shelf[shelfConfig.shelfLevel][3] = LEMON;
shelf[shelfConfig.shelfLevel][4] = BANANA;
// 输出每个货架上的水果种类
for (int i = 0; i < 5; i++) {
printf("Shelf %d:\n", i + 1);
for (int j = 0; j < 5; j++) {
switch (shelf[i][j]) {
case BANANA:
printf("Banana ");
break;
case ORANGE:
printf("Orange ");
break;
case APPLE:
printf("Apple ");
break;
case PEAR:
printf("Pear ");
break;
case LEMON:
printf("Lemon ");
break;
default:
printf("Unknown ");
break;
}
}
printf("\n");
}
return 0;
}
```
这里我们将水果种类和货架层数定义成了两个枚举类型,并封装成了一个结构体。在修改货架上水果种类时,我们先创建一个ShelfConfig结构体,将要修改的水果种类和货架层数存储在其中。然后通过访问二维数组的方式来实现对货架上水果种类的修改。最后输出每个货架上的水果种类,方便查看。
阅读全文