C语言结构体应用:用户信息存储与平均年龄计算
需积分: 16 45 浏览量
更新于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 浏览量
191 浏览量
2024-12-10 上传
189 浏览量
2023-05-01 上传
2025-01-10 上传
107 浏览量

chen_wen_yang
- 粉丝: 0
最新资源
- 利用SuperMap C++组件在Qt环境下自定义地图绘制技巧
- Portapps:Windows便携应用集合的介绍与使用
- MATLAB编程:模拟退火至神经网络算法合集
- 维美短信接口SDK与API文档详解
- Python实现简易21点游戏教程
- 一行代码实现Swift动画效果
- 手机商城零食网页项目源码下载与学习指南
- Maven集成JCenter存储库的步骤及配置
- 西门子2012年3月8日授权软件安装指南
- 高效测试Xamarin.Forms应用:使用FormsTest库进行自动化测试
- 深入金山卫士开源代码项目:学习C语言与C++实践
- C#简易贪食蛇游戏编程及扩展指南
- 企业级HTML5网页模板及相关技术源代码包
- Jive SDP解析器:无需额外依赖的Java SDP解析解决方案
- Ruby定时调度工具rufus-scheduler深度解析
- 自定义Android AutoCompleteTextView的实践指南