基于如下结构体定义,写一段c语言代码 typedef struct program{ char xnumber[100]; char xname[100]; char xtype[100]; int xscore; int getscore; }program; typedef struct yuan{ int ynumber; char yname[100]; program project[100]; }yuan; 从终端中入读入数据 存入文件data.txt
时间: 2023-07-31 10:03:51 浏览: 117
c语言结构体学习笔记.
以下是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct program{
char xnumber[100];
char xname[100];
char xtype[100];
int xscore;
int getscore;
} program;
typedef struct yuan{
int ynumber;
char yname[100];
program project[100];
} yuan;
int main() {
// 读入数据
yuan data;
printf("请输入园的编号:");
scanf("%d", &data.ynumber);
printf("请输入园的名称:");
scanf("%s", data.yname);
printf("请输入项目个数:");
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入项目编号:");
scanf("%s", data.project[i].xnumber);
printf("请输入项目名称:");
scanf("%s", data.project[i].xname);
printf("请输入项目类型:");
scanf("%s", data.project[i].xtype);
printf("请输入项目分数:");
scanf("%d", &data.project[i].xscore);
printf("请输入获奖情况:");
scanf("%d", &data.project[i].getscore);
}
// 存入文件
FILE *fp;
fp = fopen("data.txt", "w");
if (fp == NULL) {
printf("无法打开文件\n");
exit(1);
}
fprintf(fp, "%d %s %d\n", data.ynumber, data.yname, n);
for (int i = 0; i < n; i++) {
fprintf(fp, "%s %s %s %d %d\n", data.project[i].xnumber, data.project[i].xname, data.project[i].xtype,
data.project[i].xscore, data.project[i].getscore);
}
fclose(fp);
return 0;
}
```
假设输入的数据为:
```
请输入园的编号:1
请输入园的名称:园1
请输入项目个数:2
请输入项目编号:P1
请输入项目名称:项目1
请输入项目类型:类型1
请输入项目分数:90
请输入获奖情况:1
请输入项目编号:P2
请输入项目名称:项目2
请输入项目类型:类型2
请输入项目分数:80
请输入获奖情况:0
```
则程序会生成一个名为 data.txt 的文件,其内容如下:
```
1 园1 2
P1 项目1 类型1 90 1
P2 项目2 类型2 80 0
```
每行第一个数字为园的编号,第二个字符串为园的名称,第三个数字为项目个数,随后是每个项目的信息,包括编号、名称、类型、分数和获奖情况。
阅读全文