C语言结构体应用:用户信息存储与平均年龄计算
需积分: 16 17 浏览量
更新于2024-09-14
收藏 10KB TXT 举报
"C语言 结构体应用:创建一个包含姓名、年龄、电话号码和地址的`struct person`结构体,然后编写两个程序,第一个程序让用户输入10个人的信息并将其存储到二进制文件out.dat中,第二个程序读取out.dat文件,计算并输出这些人的平均年龄。"
在C语言中,结构体是一种复合数据类型,可以用来封装多个不同类型的变量。在这个例子中,我们定义了一个名为`struct person`的结构体,它包含了四个成员:姓名(`char name[10]`)、年龄(`int age`)、电话号码(`char phonenum[12]`)和地址(`char address[40]`)。结构体定义如下:
```c
struct person {
char name[10];
int age;
char phonenum[12];
char address[40];
};
```
为了实现题目要求的功能,我们需要两个函数:`write()`和`read_ave()`。
`write()`函数的目的是接收用户输入的10个人的信息,并将这些信息写入到二进制文件out.dat中。首先,我们创建一个大小为10的`struct person`数组`peo`来存储用户输入的数据。接着,使用`fopen()`函数打开名为"out.dat"的文件,指定文件模式为"wb",表示以二进制写入方式打开。如果文件无法打开,程序会输出错误信息并退出。然后,通过循环获取用户输入的每个个人信息,使用`scanf()`函数读取姓名、年龄、电话号码和地址,将这些信息存入`peo`数组。最后,使用`fwrite()`函数将整个`peo`数组写入文件,然后关闭文件。
`read_ave()`函数则负责读取out.dat文件中的数据,计算并输出所有人的平均年龄。这个函数会打开已存在的二进制文件,读取每个`struct person`对象,提取年龄并累加,最终除以人数得到平均年龄。由于这部分代码不完整,我们需要补充如下内容来完成`read_ave()`函数:
```c
int total_age = 0;
int count = 0;
rewind(fp); // 重新定位文件指针到文件开头
while (count < SIZE) {
fread(&peo[count], LEN, 1, fp);
total_age += peo[count].age;
count++;
}
float average_age = (float)total_age / count;
printf("平均年龄: %.2f\n", average_age);
fclose(fp);
```
这样,我们就完成了对C语言结构体的运用,实现了用户信息的存储和读取,并能计算平均年龄。注意,实际编程时需要根据实际情况添加错误处理和输入验证,以确保程序的健壮性。
2805 浏览量
1873 浏览量
8803 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情

chen_wen_yang
- 粉丝: 0
最新资源
- 多技术领域源码集锦:园林绿化官网企业项目
- 定制特色井字游戏Tic Tac Toe开源发布
- TechNowHorse:Python 3编写的跨平台RAT生成器
- VB.NET实现程序自动更新的模块设计与应用
- ImportREC:强大输入表修复工具的介绍
- 高效处理文件名后缀:脚本批量添加与移除教程
- 乐phone 3GW100体验版ROM深度解析与优化
- Rust打造的cursive_table_view终端UI组件
- 安装Oracle必备组件libaio-devel-0.3.105-2下载
- 探索认知语言连接AI的开源实践
- 微软SAPI5.4实现的TTSApp语音合成软件教程
- 双侧布局日历与时间显示技术解析
- Vue与Echarts结合实现H5数据可视化
- KataSuperHeroesKotlin:提升Android开发者的Kotlin UI测试技能
- 正方安卓成绩查询系统:轻松获取课程与成绩
- 微信小程序在保险行业的应用设计与开发资源包