抽了半小时给你写了下。自己看看。
如果没有学C++就把cout<<的语句改成printf,把cin>>改成scanf;我想这个对你不是问题;
运行环境VC6.0;
// StudentManger.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include
#include
//////////////////////////////////////////////////////////////////////////
//要求:
/*
请用C++6.0编写程序,处理10个学生的信息,每个学生的信息包括:学号、姓名、三门成绩。
1:从键盘输入学生的数据用一个函数实现
2:输出成绩表(包括每个学生的学号、姓名、三门成绩及平均分数)用一个函数
3:再用一个函数输出平均分在前3名的学生姓名及平均分。*/
//////////////////////////////////////////////////////////////////////////
//定义学生信息结构体;
typedef struct _student
{
char no[20];
char name[10];
float eng;
float math;
float chinese;
float averager;
} student;
/////////////
////这里赋值两个学生对象把stu2的内容复制到stu1;
void copy(student *stu1,student *stu2)
{
strcpy(stu1->no,stu2->no);
strcpy(stu1->name,stu2->name);
stu1->eng = stu2->eng;
stu1->math = stu2->math;
stu1->chinese = stu2->chinese;
stu1->averager = stu2->averager;
}
////////////////////////////////////////////////////////////////////////////
//计算学生的平均成绩;
float calcAverage(student stu)
{
return (stu.math+stu.eng+stu.chinese)/3.0;
}
//////////////////////////////////////////////////////////////////////////
//输入学生信息;
void inPut(student *stu)
{
int count = 0;
cout<<"请输入学生信息!"<
for (int i=0;i<10;i++)
{
cout<<"输入顺序是学生学号,姓名,英语成绩,数学成绩,语文成绩:"<
stu[i].averager = calcAverage(stu[i]);
}
}
//////////////////////////////////////////////////////////////////////////
//输出学生信息;
void outPut(student *stu)
{
cout<<"学生的信息和成绩如下"<
{
cout<
}
//////////////////////////////////////////////////////////////////////////
//对学生按平均成绩进行排序,并输出前三名的信息;
void sortAndOutput(student *stu)
{
int maxpos = 0;
for (int i=0;i<9;i++)
{
maxpos = i;
for (int j=i+1;j<10;j++)
{
if (stu[maxpos].averager
maxpos = j;
}
}
if (maxpos!=i)
{
student *temp = new student;
copy(temp,&stu[i]);
copy(&stu[i],&stu[maxpos]);
copy(&stu[maxpos],temp);
}
}
cout<<" 按学生平均成绩排序后前三名的信息如下:"<
{
cout<
}
int main(int argc, char* argv[])
{
// printf("Hello World!\n");
student stu[10];
inPut(stu);
outPut(stu);
sortAndOutput(stu);
return 0;
}
后来给你修改了下,应该比较完美了;
自己做才有意义!
#include
#include
#include
using namespace std;
//声明用于储存信息的数组
string number[10];//学号
string name[10];//姓名
int a1[10],a2[10],a3[10];//成绩
double avg[10];//均分
double sumav=0;//总平均分
void ReadData();
void PrintData();
void Printavg();
int main()
{
ReadData();
PrintData();
Printavg();
}
void ReadData(){
//输出用户输入的提示
cout<<"请依次输入10个学生的信息:学号、姓名、三门成绩,用空格隔开"<
{
cin>>number[i]>>name[i]>>a1[i]>>a2[i]>>a3[i];
avg[i]=(a1[i]+a2[i]+a3[i])/3;
}
}
void PrintData(){
cout<<"输出的成绩表:学号、姓名、三门成绩、平均分数\n"<
cout<
void Printavg(){
double b[10];
for(int i=0;i<10;i++){
b[i]=avg[i];
}
sort(b,b+10);//从低到高排序
//输出平均分在前三的学生姓名
cout<<"平均分前三名的同学姓名(从高到低排序):"<
{
for(int i=0;i<10;i++){
if(b[9]==avg[i]){
cout<
}
if(b[8]==avg[i]){
cout<
}
if(b[7]==avg[i]){
cout<
}
}
}
for(int i=0;i<10;i++){
sumav+=avg[i];
}
//输出总平均分
cout<<"十个人的总平均分是:"<