求牛人变C++程序 为C语言
综合练习题:给定一个班的学生(假定30人)学号(number)、姓名(name)、成绩(score),存入数组(stud)。
⑴ 根据学生学号进行排序;
⑵ 键盘输入一个学生名字,进行查找。若找到,将其学号、姓名、成绩输出。若没找到,输出“查无此人”;
⑶ 求平均成绩,并将全班高于平均成绩的成员输出(学号、姓名、成绩)。
⑷ 要求前三项,都是用函数实现。
#include<stdio.h>
#include<string.h>
#include<iomanip.h>
#define N=3;
void main()
{
void sort(int *,string[],int*);
void find(string,int *,string [],int*);
void average(int *,string [],int *);
int i;
int num[N],score[N];
string name[N],somebody;
printf("Please input data\n”);
for(i=0;i<N;i++) //输入N个数据
{
Scanf(“%dnum[i];
scanfname[i];
scanfscore[i];
}
sort(num,name,score);
for(i=0;i<N;i++)
{
printf(“num[i]<<setw(7);
printf(“name[i]<<setw(7);
printf(“score[i]<<endl;
}
printf(“"Please input a name:"<<endl;
scanfsomebody;
find(somebody,num,name,score);
average(num,name,score);
}
void sort(int *nu,string na[],int *sc )//排序
{
int i,j,num_temp,score_temp;
string name_temp;
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(nu[i]<nu[j])
{
num_temp=nu[i];
nu[i]=nu[j];
nu[j]=num_temp;
score_temp=sc[j];
sc[j]=sc[i];
sc[i]=score_temp;
name_temp=na[i];
na[i]=na[j];
na[j]=name_temp;
}
}
void find(string one,int *num,string name[],int *score)//查找
{
bool flag=false;
for(int i=0;i<N;i++)
if(one==name[i])
{
flag=true;
printf(“num[i]<<setw(7);
printf(“name[i]<<setw(7);
printf(“score[i]<<endl;
}
if(!flag)
printf(“"No such people"<<endl;
}
void average(int *num,string name[],int *score)
//求平均值,输出高于平均的
{
int i,sum=0;
float ave;
for(i=0;i<N;i++)
sum+=score[i];
ave=(float)sum/N;
printf(“"Average="<<ave<<endl;
printf(“"Above the average:"<<endl;
for(i=0;i<N;i++)
if(score[i]>ave)
{
printf(“num[i]<<setw(7);
printf(“name[i]<<setw(7);
printf(“score[i]<<endl;
}
}
这是C++程序 求教牛人给变成C语言 小弟是在束手无策了