C语言实现问卷统计
时间: 2024-02-16 20:05:32 浏览: 22
好的,我可以提供一个简单的 C 语言问卷统计程序。
假设我们要进行一个简单的问卷调查,包含以下几个问题:
1. 你的年龄是多少?
2. 你的性别是?
3. 你最喜欢的颜色是什么?
4. 你最喜欢的运动是什么?
我们可以定义一个结构体,用于存储每个人的问卷答案:
```c
typedef struct {
int age; // 年龄
char gender; // 性别,'M' 表示男性,'F' 表示女性
char color[10]; // 最喜欢的颜色
char sport[10]; // 最喜欢的运动
} Answer;
```
接下来,我们可以定义一个函数,用于输入每个人的问卷答案:
```c
void input(Answer *ans, int n) {
int i;
for (i = 0; i < n; i++) {
printf("请输入第 %d 个人的问卷答案:\n", i + 1);
printf("年龄:");
scanf("%d", &ans[i].age);
printf("性别(M/F):");
scanf(" %c", &ans[i].gender);
printf("最喜欢的颜色:");
scanf("%s", ans[i].color);
printf("最喜欢的运动:");
scanf("%s", ans[i].sport);
}
}
```
接着,我们可以定义一个函数,用于统计问卷答案:
```c
void count(Answer *ans, int n, int *age_count, int *gender_count, int *color_count, int *sport_count) {
int i;
for (i = 0; i < n; i++) {
// 统计年龄
if (ans[i].age < 18) {
age_count[0]++;
} else if (ans[i].age < 30) {
age_count[1]++;
} else if (ans[i].age < 50) {
age_count[2]++;
} else {
age_count[3]++;
}
// 统计性别
if (ans[i].gender == 'M') {
gender_count[0]++;
} else {
gender_count[1]++;
}
// 统计颜色
if (strcmp(ans[i].color, "red") == 0) {
color_count[0]++;
} else if (strcmp(ans[i].color, "green") == 0) {
color_count[1]++;
} else if (strcmp(ans[i].color, "blue") == 0) {
color_count[2]++;
} else {
color_count[3]++;
}
// 统计运动
if (strcmp(ans[i].sport, "basketball") == 0) {
sport_count[0]++;
} else if (strcmp(ans[i].sport, "football") == 0) {
sport_count[1]++;
} else if (strcmp(ans[i].sport, "swimming") == 0) {
sport_count[2]++;
} else {
sport_count[3]++;
}
}
}
```
其中,`age_count`、`gender_count`、`color_count` 和 `sport_count` 分别表示不同问题的答案统计结果。
最后,我们可以在 `main` 函数中调用上述函数,实现问卷答案的统计:
```c
int main() {
int n; // 问卷调查的人数
printf("请输入问卷调查的人数:");
scanf("%d", &n);
Answer *ans = (Answer *) malloc(n * sizeof(Answer)); // 分配问卷答案结构体数组的内存空间
input(ans, n); // 输入问卷答案
int age_count[4] = {0}; // 初始化年龄统计结果
int gender_count[2] = {0}; // 初始化性别统计结果
int color_count[4] = {0}; // 初始化颜色统计结果
int sport_count[4] = {0}; // 初始化运动统计结果
count(ans, n, age_count, gender_count, color_count, sport_count); // 统计问卷答案
// 输出各问题的答案统计结果
printf("年龄统计:\n");
printf("<18:%d\n", age_count[0]);
printf("18~30:%d\n", age_count[1]);
printf("30~50:%d\n", age_count[2]);
printf(">50:%d\n", age_count[3]);
printf("性别统计:\n");
printf("男性:%d\n", gender_count[0]);
printf("女性:%d\n", gender_count[1]);
printf("颜色统计:\n");
printf("红色:%d\n", color_count[0]);
printf("绿色:%d\n", color_count[1]);
printf("蓝色:%d\n", color_count[2]);
printf("其他:%d\n", color_count[3]);
printf("运动统计:\n");
printf("篮球:%d\n", sport_count[0]);
printf("足球:%d\n", sport_count[1]);
printf("游泳:%d\n", sport_count[2]);
printf("其他:%d\n", sport_count[3]);
free(ans); // 释放问卷答案结构体数组的内存空间
return 0;
}
```
以上代码仅供参考,实际应用中还需要根据具体需求进行修改和完善。