1、建立三个文件 ,mymain.c list.c list .h
2 、mymain.c只有一个主函数,调用list.c文件内的功能函数。
3、主函数定义一维数组,存储学生成绩,二维数组存储学生姓名。
4、功能1:一维数组和二维数组作为参数传递给子函数1,并在子函数1中赋值
5、功能2:子函数2求出最高成绩学生对应的姓名
6、功能3:子函数3求出学生平均成绩
7、功能4:子函数4对学生成绩排序。
8、功能5:子函数5对给定关键字key的学生成绩进行查找,查找成功输出该学生姓名。
main.c
#include "list.h"
int main(int argc, const char *argv[])
{
int arr[10];
char brr[5][10];
input_s(arr,brr,3);
output_s(arr,brr,3);
max_s(arr,brr,3);
avg_s(arr,brr,3);
sort_s(arr,brr,3);
output_s(arr,brr,3);
find_s(arr,brr,3);
return 0;
}
list.c
#include <myhead.h>
int input_s(int score[],char (*name)[10],int count)
{
int i;
for(i=0;i<count;i++)
{
printf("输入第%d位学生姓名:",i+1);
scanf("%s",name[i]);
}
printf("输入学生的成绩:\n");
for(i=0;i<count;i++)
{
printf("输入%s的成绩:",*(name+i));
scanf("%d",&score[i]);
}
}
int output_s(int score[],char (*name)[10],int count)
{
int i;
for(i=0;i<count;i++)
{
printf("姓名:%s\t成绩:%d\n",name[i],score[i]);
}
}
int max_s(int score[],char (*name)[10],int count)
{
int i=0;
int a;
int max=score[0];
for(i=0;i<count;i++)
{
if(max<score[i])
{
max=score[i];
a=i;
}
}
printf("\n最高成绩:%d 同学:%s\n",max,name[a]);
}
int avg_s(int score[],char (*name)[10],int count)
{
int i;
float sum=0;
float avg;
for(i=0;i<count;i++)
{
sum+=score[i];
}
printf("平均成绩:%.2f\n ",sum/count);
}
int sort_s(int score[],char (*name)[10],int count)
{
int i,j;
int temp;
char tem[10];
for(i=1;i<count;i++)
{
for(j=0;j<count-1;j++)
{
if(score[j]<score[j+1])
{
temp=score[j];
strcpy(tem,name[j]);
score[j]=score[j+1];
strcpy(name[j],name[j+1]);
score[j+1]=temp;
strcpy(name[j+1],tem);
}
}
}
}
int find_s(int score[],char (*name)[10],int count)
{
int key;
int i;
printf("请输入要查找的成绩:");
scanf("%d",&key);
for(i=0;i<count;i++)
{
if(score[i]==key)
{
printf("查找成功\n");
printf("该学生为%s\n",name[i]);
return;
}
}
printf("查找失败\n");
}
list.h
#ifndef __LIST__H__
#define __LIST__H__
int input_s(int score[],char (*name)[10],int count);
int output_s(int score[],char (*name)[10],int count);
int max_s(int score[],char (*name)[10],int count);
int avg_s(int score[],char (*name)[10],int count);
int sort_s(int score[],char (*name)[10],int count);
int find_s(int score[],char (*name)[10],int count);
#endif