求c语言程序源代码,主题随便,尽量超过40行!谢谢!!
1个回答
展开全部
#include<stdio.h>
#define N 31
typedef struct
{
long num; //学号
int score; //成绩
}Student;
void sort(Student stu[]);//排序函数
void insert(Student stu[],Student stu1);//插入函数
void count(Student stu[]);//计算总分及平均分
void search(Student stu[],long num);//查询函数
main()
{
Student stu[N],stu1;
int i;
long num;
printf("输入30位学生的学号 成绩:\n");
for(i=0;i<N-1;i++)
scanf("%ld%d",&stu[i].num,&stu[i].score);
sort(stu);
printf("输入欲插入的学生的学号 成绩:\n");
scanf("%ld%d",&stu1.num,&stu1.score);
insert(stu,stu1);
count(stu);
printf("输入欲查询的学生学号:");
scanf("%ld",&num);
search(stu,num);
}
void sort(Student stu[])
{
int i,j;
Student t;
//冒泡法排序
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(stu[j].score<stu[j+1].score)
{t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;}
//打印排序后的信息
printf("名次 学号 成绩\n");
for(i=0;i<N-1;i++)
printf("第%d名 %-6ld%-6d\n",i+1,stu[i].num,stu[i].score);
}
void insert(Student stu[],Student stu1)
{
int i,j;
for(i=0;i<N-1;i++)
{
if(stu1.score>stu[i].score)
{
for(j=N-1;j>i;j--)
stu[j]=stu[j-1];
stu[i]=stu1;
break;
}
stu[N-1]=stu1;
}
//打印插入后的信息
printf("名次 学号 成绩\n");
for(i=0;i<N;i++)
printf("第%d名 %-6ld%-6d\n",i+1,stu[i].num,stu[i].score);
}
void count(Student stu[])
{
long sum=0;
int i;
for(i=0;i<N;i++)
sum+=stu[i].score;
printf("总分:%-3ld\n平均分:%-3ld\n",sum,sum/N);
}
void search(Student stu[],long num)
{
int i;
printf("名次 学号 成绩\n");
for(i=0;i<N;i++)
{
if(num==stu[i].num)
{printf("第%d名 %-6ld%-6d\n",i+1,stu[i].num,stu[i].score);
return;
}
}
printf("无此学生\n");
}
#define N 31
typedef struct
{
long num; //学号
int score; //成绩
}Student;
void sort(Student stu[]);//排序函数
void insert(Student stu[],Student stu1);//插入函数
void count(Student stu[]);//计算总分及平均分
void search(Student stu[],long num);//查询函数
main()
{
Student stu[N],stu1;
int i;
long num;
printf("输入30位学生的学号 成绩:\n");
for(i=0;i<N-1;i++)
scanf("%ld%d",&stu[i].num,&stu[i].score);
sort(stu);
printf("输入欲插入的学生的学号 成绩:\n");
scanf("%ld%d",&stu1.num,&stu1.score);
insert(stu,stu1);
count(stu);
printf("输入欲查询的学生学号:");
scanf("%ld",&num);
search(stu,num);
}
void sort(Student stu[])
{
int i,j;
Student t;
//冒泡法排序
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(stu[j].score<stu[j+1].score)
{t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;}
//打印排序后的信息
printf("名次 学号 成绩\n");
for(i=0;i<N-1;i++)
printf("第%d名 %-6ld%-6d\n",i+1,stu[i].num,stu[i].score);
}
void insert(Student stu[],Student stu1)
{
int i,j;
for(i=0;i<N-1;i++)
{
if(stu1.score>stu[i].score)
{
for(j=N-1;j>i;j--)
stu[j]=stu[j-1];
stu[i]=stu1;
break;
}
stu[N-1]=stu1;
}
//打印插入后的信息
printf("名次 学号 成绩\n");
for(i=0;i<N;i++)
printf("第%d名 %-6ld%-6d\n",i+1,stu[i].num,stu[i].score);
}
void count(Student stu[])
{
long sum=0;
int i;
for(i=0;i<N;i++)
sum+=stu[i].score;
printf("总分:%-3ld\n平均分:%-3ld\n",sum,sum/N);
}
void search(Student stu[],long num)
{
int i;
printf("名次 学号 成绩\n");
for(i=0;i<N;i++)
{
if(num==stu[i].num)
{printf("第%d名 %-6ld%-6d\n",i+1,stu[i].num,stu[i].score);
return;
}
}
printf("无此学生\n");
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询