给定n 个描述,每个描述包含一个类型标志和一组相应的数据。类型标志共 3 种:INT DOUBLE STRING,然后对应一组相应的数据。要求输出第 m 个描述的类型输出数据。要求:输入的第一行为两个整数,n 和m,(n<=100,m<=100, STRING 数据不会超过 19 个字符);输出对应的结果,注意:浮点数保留两位小数。c语言代码
时间: 2024-02-27 19:57:52 浏览: 74
以下是一个可能的 C 语言解决方案:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 100
#define MAX_STR_LEN 20
// 描述类型
enum DataType {
INT,
DOUBLE,
STRING
};
// 描述结构体
struct DataItem {
enum DataType type;
union {
int int_value;
double double_value;
char str_value[MAX_STR_LEN];
} data;
};
int main() {
int n, m;
struct DataItem items[MAX_N];
// 读入 n 和 m
scanf("%d %d", &n, &m);
// 读入 n 个描述
for (int i = 0; i < n; i++) {
char type_str[MAX_STR_LEN];
scanf("%s", type_str);
if (strcmp(type_str, "INT") == 0) {
items[i].type = INT;
scanf("%d", &items[i].data.int_value);
} else if (strcmp(type_str, "DOUBLE") == 0) {
items[i].type = DOUBLE;
scanf("%lf", &items[i].data.double_value);
} else if (strcmp(type_str, "STRING") == 0) {
items[i].type = STRING;
scanf("%s", items[i].data.str_value);
} else {
printf("Invalid type: %s\n", type_str);
return 1;
}
}
// 输出第 m 个描述的类型和数据
if (m < 1 || m > n) {
printf("Invalid m: %d\n", m);
return 1;
}
struct DataItem item = items[m-1];
switch (item.type) {
case INT:
printf("INT %d\n", item.data.int_value);
break;
case DOUBLE:
printf("DOUBLE %.2f\n", item.data.double_value);
break;
case STRING:
printf("STRING %s\n", item.data.str_value);
break;
}
return 0;
}
```
这个解决方案首先读入 n 和 m,然后读入 n 个描述信息,存储在一个 `DataItem` 结构体数组中。然后根据 m 输出对应的描述信息的类型和数据。对于不合法的输入,会输出错误信息并退出程序。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)