结构体数组,平均成绩,指针的三种表示方法
2015-10-31 10:54
363 查看
一个结构体数组中存放有若干学生的信息,每个学生有若干门课程的成绩,计算每个学生的平均成绩,并根据平均成绩由高到低的顺序输出每个学生的学号、姓名、和平均成绩(下面的代码里面用指针的三种表示方法实现输出);
#include <iostream> using namespace std; #include <string> struct student{ string num; string name; int score[3]; double avg; }; int main() { student stu[5]={ {"2011001","zhao",{78,65,89}}, {"2011002","qian",{76,91,62}}, {"2011003","sun",{85,79,92}}, {"2011004","li",{93,61,72}}, {"2011005","zhou",{92,75,98}} }; for (int i = 0; i < 5; i++) { int sum=0,num=0; for (int j = 0; j < 3; j++) { sum+=stu[i].score[j]; num++; } stu[i].avg=sum/num; } for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (stu[j].avg<stu[j+1].avg) { student temp; temp=stu[j]; stu[j]=stu[j+1]; stu[j+1]=temp; } } } student *p; p=stu; cout<<"学号\t姓名\t平均成绩"<<endl; for (int i = 0; i <5; i++) { cout<<(*(p+i)).num<<"\t"; cout<<(*(p+i)).name<<"\t"; cout<<(*(p+i)).avg<<"\t"<<endl; } cout<<endl<<"学号\t姓名\t平均成绩"<<endl; for (int i = 0; i <5; i++) { cout<<(p+i)->num<<"\t"; cout<<(p+i)->name<<"\t"; cout<<(p+i)->avg<<"\t"<<endl; } cout<<endl<<"学号\t姓名\t平均成绩"<<endl; for (int i = 0; i <5; i++) { cout<<p[i].num<<"\t"; cout<<p[i].name<<"\t"; cout<<p[i].avg<<"\t"<<endl; } getchar(); getchar(); return 0; }
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- 关于指针的一些事情
- android上改变listView的选中颜色
- String.intern
- 注册表的组织结构
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- Lua和C语言的交互详解
- SQLSERVER的非聚集索引结构深度理解
- 调整SQLServer2000运行中数据库结构
- PostgreSQL ERROR: invalid escape string 解决办法
- C#基础语法:结构和类区别详解
- 深入c# 类和结构的区别总结详解
- c#结构和类的相关介绍
- C#中结构(struct)的部分初始化和完全初始化实例分析
- C#中类与结构的区别实例分析
- C#枚举类型与结构类型实例解析
- C# Pointer指针应用实例简述