⑴ c语言作业题4
#include "stdio.h"
#include "conio.h"
int a[1000];
int num[1000];
int main(void)
{
int n=0,i,j,k,tmp,m;
freopen("C:\\filein.txt","r",stdin);
while(scanf("%d",&a[n])!=EOF)
{
num[n]=a[n];
n++;
}
for(i=0;i<n;i++)//选择排序
{
k=i;
for(j=i+1;j<n;j++)
{
if(num[j]>num[k])k=j;
}
tmp=num[i];
num[i]=num[k];
num[k]=tmp;
}
j=1;
for(i=1;i<n;i++)
{
if(num[i]!=num[i-1])
num[j++]=num[i];
}
m=j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(num[j]==a[i])break;
}
if(i)putchar(',');
printf("%d(%d)",a[i],j+1);
}
puts("");
freopen("C:\\fileout.txt","w",stdout);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(num[j]==a[i])break;
}
if(i)putchar(',');
printf("%d(%d)",a[i],j+1);
}
puts("");
return 0;
}
⑵ c语言作业
编译器:codeblock
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//define N 1000000
int main()
{
int shu[11];
int n,i,te,ans=1;
for(i=1;i<11;i++) shu[i]=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&te);
shu[te]++;
}
for(i=2;i<11;i++)
{
if(shu[ans]<shu[i]) ans=i;
}
printf("%d appears %d times\n",ans,shu[ans]);
return 0;
}
⑶ 学了一学期的C语言,要做大作业。 求一个500行C语言程序代码。 可以在VC++6.0上运行的。
//户籍管理系统, 应该能满足你的要求。
//多给点财富吧
#include<stdio.h>
#include<stdlib.h>
typedef struct tagHuJiXinXi
{
char shfzhh[64]; //身份证号
char xm[16]; //姓名
char xb[8]; //性别
int nl; //年龄
char xl[64]; //学历
char zhzh[64]; //住址
char dh[32]; //电话
}HuJiXinXi,*PtHuJiXinXi;
void readfromfile();
void writetofile();
void tuichu();
void add();
void outputone();
void outputall();
void sortbyage();
void myrealloc();
void findbyagerange();
void del();
void alter();
void find();
void showmenu();
void processmenu(int m);
PtHuJiXinXi pt;
int count=0,capacity=16;
int main()
{
int m;
pt=(PtHuJiXinXi)calloc(capacity,sizeof(HuJiXinXi));
readfromfile();
while(1)
{
showmenu();
scanf("%d",&m);
processmenu(m);
}
system("PAUSE");
return EXIT_SUCCESS;
}
void processmenu(int m)
{
switch(m)
{
case 0:
tuichu();
break;
case 1:
add();
break;
case 2:
del();
break;
case 3:
alter();
break;
case 4:
outputall();
break;
case 5:
sortbyage();
break;
case 6:
findbyagerange();
break;
case 7:
writetofile();
break;
case 8:
find();
break;
default:
printf("不可识别的命令。\n");
}
}
//实现存储空间的自动扩充
void myrealloc()
{
if(count+1>=capacity)
{
int i;
capacity*=2;
PtHuJiXinXi temppt=(PtHuJiXinXi)calloc(capacity,sizeof(HuJiXinXi));
for(i=0;i<count;i++)
{
temppt[i]=pt[i];
}
free(pt);
pt=temppt;
}
}
void readfromfile()
{
char f[128];
FILE *inf;
HuJiXinXi hjxx;
printf("请输入包含户籍信息的文件的文件名,如果还没有文件,请输入omit(文件中每行一条户籍信息,");
printf("格式:身份证号 姓名 性别 年龄 学历 住址 电话)...\n");
gets(f);
if(!strcmp(f,"omit"))
{
return;
}
inf=fopen(f,"r");
if(NULL!=inf)
{
do
{
fscanf(inf,"%s %s %s %d %s %s %s",hjxx.shfzhh,hjxx.xm,hjxx.xb,&hjxx.nl,hjxx.xl,hjxx.zhzh,hjxx.dh);
myrealloc();
pt[count++]=hjxx;
}while(!feof(inf));
fclose(inf);
printf("信息已成功加载。\n");
}
else
{
printf("文件名无效或文件无数据。\n");
}
}
void writetofile()
{
char f[128]={'\0'};
FILE *outf;
int i;
printf("请输入保存户籍信息的文件的文件名:\n");
scanf("%s",f);
outf=fopen(f,"w");
if(NULL!=outf)
{
for(i=0;i<count;i++)
{
fprintf(outf,"%s %s %s %d %s %s %s",pt[i].shfzhh,pt[i].xm,pt[i].xb,pt[i].nl,pt[i].xl,pt[i].zhzh,pt[i].dh);
if(count-1!=i)
{
fprintf(outf,"%s","\n");
}
}
fclose(outf);
printf("文件保存成功。\n");
}
else
{
printf("文件名无效。\n");
}
}
void showmenu()
{
char menu[]="菜单:\n0、退出\n1、添加一条信息\n2、删除一条信息\n3、批量修改\n4、浏览全部信息\n5、按年龄排序 \n6、按年龄区间查询\n7、保存到文件\n8、随意查询\n请选择一个菜单:";
puts(menu);
}
void tuichu()
{
if(NULL==pt)
{
free(pt);
}
exit(0);
}
//判断身份证号是否重复
int isshfzhhchf(char s[64])
{
int i,r=0;
for(i=0;i<count;i++)
{
if(!strcmp(pt[i].shfzhh,s))
{
r=1;
break;
}
}
return r;
}
void add()
{
myrealloc();
printf("添加一条户籍信息。\n");
printf("请输入身份证号 姓名 性别 年龄 学历 住址 电话:\n");
scanf("%s %s %s %d %s %s %s",pt[count].shfzhh,pt[count].xm,pt[count].xb,&pt[count].nl,
pt[count].xl,pt[count].zhzh,pt[count].dh);
if(!isshfzhhchf(pt[count].shfzhh))
{
count++;
printf("添加成功。\n");
}
else
{
printf("身份证号重复,添加失败。\n");
}
}
//输出下标为n的一条户籍信息
void outputone(int n)
{
if(n>=0 && n<count)
{
printf("第%d条户籍信息:\n",n+1);
printf("%s %s %s %d %s %s %s。\n",pt[n].shfzhh,pt[n].xm,pt[n].xb,pt[n].nl,pt[n].xl,pt[n].zhzh,pt[n].dh);
}
else
{
printf("没有第%d条户籍信息存在。\n",n+1);
}
}
void outputall()
{
if(0==count)
{
printf("系统已空。\n");
}
else
{
int i;
for(i=0;i<count;i++)
{
outputone(i);
}
}
}
void sortbyage()
{
int i,j,px;
HuJiXinXi hjxx;
printf("子菜单:\n1、升序\n2、降序\n请选择:");
scanf("%d",&px);
if(1==px || 2==px)
{
for(i=0;i<count-1;i++)
{
for(j=0;j<count-i-1;j++)
{
if(1==px)
{
if(pt[j].nl>pt[j+1].nl)
{
hjxx=pt[j+1];
pt[j+1]=pt[j];
pt[j]=hjxx;
}
}
else
{
if(pt[j].nl<pt[j+1].nl)
{
hjxx=pt[j+1];
pt[j+1]=pt[j];
pt[j]=hjxx;
}
}
}
}
printf("排序完成。\n");
}
else
{
printf("无法处理的子菜单命令。\n");
}
}
void findbyagerange()
{
int i,min,max,c=0;
printf("请输入要查找的户籍信息的最小年龄和最大年龄:");
scanf("%d %d",&min,&max);
printf("查询结果如下:\n");
for(i=0;i<count;i++)
{
if(pt[i].nl>=min && pt[i].nl<=max)
{
outputone(i);
printf("符合你的要求。\n");
c++;
}
}
if(0==c)
{
printf("没有符合你的要求的户籍信息。\n");
}
}
//删除一条户籍信息
void del()
{
int i,n;
HuJiXinXi hjxx;
printf("请输入要删除的是第几条户籍信息:");
scanf("%d",&n);
if(n-1>=0 && n-1<count)
{
hjxx=pt[n-1];
for(i=n;i<count;i++)
{
pt[i-1]=pt[i];
}
printf("删除成功。\n第%d条户籍信息:\n",n);
printf("%s %s %s %d %s %s %s。",hjxx.shfzhh,hjxx.xm,hjxx.xb,hjxx.nl,hjxx.xl,hjxx.zhzh,hjxx.dh);
printf(",已删除。\n");
count--;
}
else
{
printf("删除失败。\n不存在第%d条户籍信息。\n",n);
}
}
//根据hjxx的值修改下标为n的户籍信息
//对于pt[n]的对应字段,如果在hjxx中是用*表示的,则不修改
void change(HuJiXinXi hjxx,int n)
{
//返回非0值,意味着hjxx.shfzhh(身份证号)不等于*,即需要修改pt[n].shfzhh字段,以下都类似
if(strcmp(hjxx.shfzhh,"*"))
{
strcpy(pt[n].shfzhh,hjxx.shfzhh);
}
if(strcmp(hjxx.xm,"*"))
{
strcpy(pt[n].xm,hjxx.xm);
}
if(strcmp(hjxx.xb,"*"))
{
strcpy(pt[n].xb,hjxx.xb);
}
//不等于-1表示需要修改pt[n].nl(年龄)
if(-1!=hjxx.nl)
{
pt[n].nl=hjxx.nl;
}
if(strcmp(hjxx.xl,"*"))
{
strcpy(pt[n].xl,hjxx.xl);
}
if(strcmp(hjxx.zhzh,"*"))
{
strcpy(pt[n].zhzh,hjxx.zhzh);
}
if(strcmp(hjxx.dh,"*"))
{
strcpy(pt[n].dh,hjxx.dh);
}
}
//对户籍信息进行批量修改
void alter()
{
int n;
HuJiXinXi hjxx;
char nl[16];
while(1)
{
printf("请输入要修改第几条户籍信息(-1退出循环):");
scanf("%d",&n);
if(-1==n)
{
break;
}
else if(n-1>=0 && n-1<count)
{
printf("修改...\n");
outputone(n-1);
printf("请输入将此户籍信息修改后的新的姓名 性别 年龄 学历 住址 电话(保持原值的用*代替):\n");
scanf("%s %s %s %s %s %s",hjxx.xm,hjxx.xb,nl,hjxx.xl,hjxx.zhzh,hjxx.dh);
//因为只有nl(年龄)是int型,故对nl作特殊处理,-1表示修改时年龄保持原值不变(不修改)
hjxx.nl=(strcmp(nl,"*") ? atoi(nl) : -1);
strcpy(hjxx.shfzhh,"*");
change(hjxx,n-1);
printf("修改完成。\n");
}
else
{
printf("无法修改,不存在第%d条户籍信息。\n",n);
}
}
}
//用于判断pt[n]是否匹配hjxx的模式
int ismatch(HuJiXinXi hjxx,int n)
{
int r=1;
if(strcmp(hjxx.shfzhh,"*") && strcmp(hjxx.shfzhh,pt[n].shfzhh))
{
r=0;
}
if(r && strcmp(hjxx.xm,"*") && strcmp(hjxx.xm,pt[n].xm))
{
r=0;
}
if(r && strcmp(hjxx.xb,"*") && strcmp(hjxx.xb,pt[n].xb))
{
r=0;
}
if(r && -1!=hjxx.nl && hjxx.nl!=pt[n].nl)
{
r=0;
}
if(r && strcmp(hjxx.xl,"*") && strcmp(hjxx.xl,pt[n].xl))
{
r=0;
}
if(r && strcmp(hjxx.zhzh,"*") && strcmp(hjxx.zhzh,pt[n].zhzh))
{
r=0;
}
if(r && strcmp(hjxx.dh,"*") && strcmp(hjxx.dh,pt[n].dh))
{
r=0;
}
return r;
}
//按模式查询户籍信息
void find()
{
int i,c=0;
char nl[16];
HuJiXinXi hjxx;
printf("请输入要查询的户籍信息的身份证号 姓名 性别 年龄 学历 住址 电话(只需提供关键信息以用于查询,不提供的信息请用*代替):\n");
scanf("%s %s %s %s %s %s %s",hjxx.shfzhh,hjxx.xm,hjxx.xb,nl,hjxx.xl,hjxx.zhzh,hjxx.dh);
//因为只有nl(年龄)是int型,故对nl作特殊处理,-1表示查询时不需比较年龄
hjxx.nl=(strcmp(nl,"*") ? atoi(nl) : -1);
for(i=0;i<count;i++)
{
if(ismatch(hjxx,i))
{
printf("找到第%d条满足你的模式要求的户籍信息如下:\n",c+1);
printf("%s %s %s %d %s %s %s。\n",pt[i].shfzhh,pt[i].xm,pt[i].xb,pt[i].nl,pt[i].xl,pt[i].zhzh,pt[i].dh);
c++;
}
}
if(!c)
{
printf("系统中没有满足你的模式要求的户籍信息。\n");
}
}
⑷ 帮我写一下C语言大作业吧,非常紧急,是关于猜价格游戏的。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void introction(){
printf("猜价格游戏,。。。。。\n");
}
int startgame(){
int price,player;
int i;
time_t t;
srand((unsigned)time(&t));
price=rand()%101+100;
printf("%d\n",price);
for(i=0;i<6;i++){
printf("请输入价格:");
scanf("%d",&player);
if(player>price)
printf("高\n");
else if(player<price)
printf("低\n");
else{
printf("恭喜你!猜对了!\n");
return i;
break;
}
}
printf("很遗憾!没有猜对!\n");
return -1;
}
double winingper(int winnum,int total){
double per,prinper;
if(total==0){
printf("你还没有进行游戏!\n");
return -1;
}
per=(double)winnum/total;
prinper=per*100;
printf("你的胜率为:%.1lf % \n",prinper);
return prinper;
}
int average(int score,int num){
if(num==0){
printf("你还没有进行游戏!\n");
return -1;
}
printf("你的平均分为:%d\n",score/num);
return score/num;
}
int gameover(){
exit(1);
}
void menu(){
printf("***********menu*************\n");
printf("1.游戏介绍\n");
printf("2.开始游戏\n");
printf("3.输出胜率\n");
printf("4.输出平均成绩\n");
printf("5.\n");
printf("6.退出游戏\n");
printf("****************************\n");
}
void main(){
int i,select,flag;
int count=0,wincount=0,score=0;
label:
menu();
scanf("%d",&select);
switch(select){
case 1:introction();goto label;
break;
case 2:flag=startgame();count++;
if(flag!=-1){
wincount++;
score+=(5-flag)*2;
}
goto label;
break;
case 3:winingper(wincount,count);goto label;
break;
case 4:average(score,count);goto label;
break;
case 5:goto label;
break;
case 6:exit(1);
break;
default:
printf("错误的选择项!\n");
break;
}
}
⑸ 求C语言代码范例
这是我复制的 http://..com/question/245178978.html?fr=uc_push&push=core&group=0 回答者: trialman | 五级 | 2011-3-29 15:47 | 检举
你真的很强!!!!!
问题1:
#include <stdio.h>
int main(){
int a,b,c;
char s[10];
float f;
i=i+1;
i++;
++i;
printf("please input integer a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("please input a string\n");
scanf("%s",s);
printf("please input a float number\n");
scanf("%f",&f);
printf("the sum of a,b,c is :%d\n",a+b+c);
printf("the input string is :%s\n",s);
printf("the input float number is:%f\n",f);
return 1;
}
问题2:
#include <stdio.h>
int main(){
int a,b,c;
char s[10];
float f;
k=++i +j; /*把整型变量i和j的和赋给整型变量k,并同时让i的值增加1.
*/
x=x<<1; /*把整型变量X值扩大一倍
*/
j-=--i; /*在变量i减去1后,将变量j减去变量i
*/
r=j%i; /*计算变量i除变量j的余数r*/
printf("please input integer a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("please input a string\n");
scanf("%s",s);
printf("please input a float number\n");
scanf("%f",&f);
printf("the sum of a,b,c is :%d\n",a+b+c);
printf("the input string is :%s\n",s);
printf("the input float number is:%f\n",f);
return 1;
}
⑹ C语言大作业.
输入十名顾客的信息到结构体数组中,最后统计这十名中购买商品总额最大的顾客,将他的信息打印输出。
//并按照下列各式把信息存入到customer.txt中:
//0001 Kate 5 822.8
//0002 Jame 7 2761.9
//2011.1.11 11:37
#include<stdio.h>
#include<math.h>
#define CST_NUM 10//宏定义客户数目
struct customer
{
int num;
char name[20];
int amount;
float value;
}cst[CST_NUM];//定义结构体customer,并声明结构体数组cst[CST_NUM].
void printline(void);
void sort_cst(struct customer[],int);
void print_cst(struct customer[],int);
void main(void)
{
FILE *f1;//声明文件指针
int h=sin(0);//为编译器装载float类型
int i;
for(i=0;i<CST_NUM;i++)//从键盘读取客户信息
{
printline();
printf("请输入第%d名顾客的编号",i+1);
scanf("%d",&cst[i].num);
putchar('\n');
fflush(stdin);//清流
printf("请输入第%d名顾客的姓名",i+1);
scanf("%s",cst[i].name);
putchar('\n');
fflush(stdin);//清流
printf("请输入第%d名顾客的商品数量",i+1);
scanf("%d",&cst[i].amount);
putchar('\n');
printf("请输入第%d名顾客的商品总额",i+1);
scanf("%f",&cst[i].value);
putchar('\n');
fflush(stdin);//清流
}
sort_cst(cst,CST_NUM);//客户信息排序
print_cst(cst,CST_NUM);//将客户信息输出至屏幕
f1=fopen("customer.txt","w");//打开文件
fprintf(f1,"客户编号 客户姓名 商品数量 商品总额\n");
for(i=0;i<CST_NUM;i++)
{
fprintf(f1,"%5d%12s%10d%10.1f\n",cst[i].num,cst[i].name,cst[i].amount,cst[i].value);//存入客户信息
}
fclose(f1);//关闭文件
getch();
}
void sort_cst(struct customer cst[],int cst_num)//自定义函数:客户信息排序
{
int i,j;
struct customer temp;
for(i=0;i<cst_num;i++)
{
for(j=0;j<cst_num;j++)
{
if(cst[i].value>cst[j].value)
{
temp=cst[i];
cst[i]=cst[j];
cst[j]=temp;
}
} }
}
void print_cst(struct customer cst[],int cst_num)//自定义函数:客户信息显示
{
int i;
printline();
printf("客户编号 客户姓名 商品数量 商品总额\n");
for(i=0;i<cst_num;i++)
{
printf("%5d",cst[i].num);
printf("%12s",cst[i].name);
printf("%10d",cst[i].amount);
printf("%10.1f\n",cst[i].value);
}
printline();
}
void printline(void)//自定义函数:画线
{
int i;
printf("\n");
for(i=0;i<50;i++)
{
printf("_");
}
printf("\n");
}
⑺ C语言大作业,C语言高手们救下小弟啊```
这是我在大学做过的课程设计,你看看:
/*
程序功能:
能完成每位学生的某门课程的平时成绩和期末考试成绩的录入,
完成每位学生的总评成绩计算(平时成绩*30%+期末考试成绩*70%)并生成数据文件,
生成分数段统计文件(不及格人数,60-69数,70-79人数,80-89人数,90-100人数,及格率),
通过学生成绩的数据文件查询学生成绩(查询条件自定)。
通过学生成绩的分段统计文件输出学生成绩分段情况和及格率。
程序要求:
(1)能够完成300人以内任何人数的成绩处理。
(2)程序要有主控菜单
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct stud
{
long num;
char name[20];
double score;
};
typedef struct stucode
{
struct stud student ;
struct stucode *next;
}L;
void menu();
void createlist(struct stucode **r);
void out(struct stucode *r);
void search1(struct stucode *r);
void search2(struct stucode *r);
void del(struct stucode **r);
void insert(struct stucode **r);
void sort(struct stucode **r);
void main()
{
char choose;
int flag=1;
struct stucode *r=NULL;
while(flag)
{
system("cls");
menu();
choose=getchar();
switch(choose)
{
case '1':
createlist(&r);
out(r);
printf("Testing function 1\nPress any key to continue\n");
getchar();
getchar();
break;
case '2':
search1(r);
printf("Testing function 1\nPress any key to continue\n");
getchar();
getchar();
break;
case '3':
search2(r);
printf("Testing function 1\nPress any key to continue\n");
getchar();
getchar();
break;
case '4':
del(&r);
out(r);
printf("Testing function 1\nPress any key to continue\n");
getchar();
getchar();
break;
case '5':
insert(&r);
out(r);
printf("Testing function 1\nPress any key to continue\n");
getchar();
getchar();
break;
case '6':
sort(&r);
out(r);
printf("Testing function 1\nPress any key to continue\n");
getchar();
getchar();
break;
case '7':
out(r);
printf("Testing function 7\nPress any key to continue\n");
getchar();
getchar();
break;
case '0':
flag=0;
printf("The end.\n");
break;
default: printf("\nWrong Selection!(选择错误,请重选!)\n");getchar();getchar();
}
}
}
void createlist(struct stucode **r)
{
struct stucode *p,*t;
long n;
char a[20];
double s;
if(*r) *r=NULL;
printf(" \n请输入:\n 学号(请按学号升序排列) 姓名 分数 (若要结束请输入三个为零)\n");
scanf("%ld%s%lf",&n,a,&s);
if(n==0) return;
p=(L *)malloc(sizeof(L));
p->student.num=n;
strcpy(p->student.name,a);
p->student.score=s;
p->next=NULL;
*r=p;
scanf("%ld%s%lf",&n,a,&s);
while(n)
{
t=p;
p=(L *)malloc(sizeof(L));
p->student.num=n;
strcpy(p->student.name,a);
p->student.score=s;
p->next=NULL;
t->next=p;
scanf("%ld%s%lf",&n,a,&s);
}
}
void search1(struct stucode *r)
{
long x;
if(!r)
{
printf("没有学生信息可查询!\n");
return ;
}
printf(" 请输入要查询的学生信息的学生学号:\n");
scanf("%ld",&x);
while(r&&r->student.num!=x)
r=r->next;
if(r==NULL)
printf("Error! No such student !\n");
else
printf("%ld %s %.2lf\n",r->student.num,r->student.name,r->student.score);
}
void search2(struct stucode *r)
{
char m[20];
if(!r)
{
printf("没有学生信息可查询!\n");
return ;
}
printf(" 请输入要查询的学生信息的学生姓名:\n");
scanf("%s",m);
while(r&&strcmp(r->student.name,m))
r=r->next;
if(r==NULL)
printf("Error! No such student !\n");
else
printf("%ld %s %.2lf\n",r->student.num,r->student.name,r->student.score);
}
void del(struct stucode **r)
{
long k;
struct stucode *p=*r,*t;
if(!(*r))
{
printf("没有学生信息可删除 !\n");
return ;
}
printf(" 请输入要删除的学生信息的学生学号:\n");
scanf("%ld",&k);
if(p->student.num==k)
*r=(*r)->next,free(p);
else
{
while(p->next&&p->next->student.num!=k)
p=p->next;
if(p->next==NULL)
printf("Error! No such student !\n");
else
{
t=p->next;
p->next=p->next->next;
free(t);
}
}
}
void insert(struct stucode **r)
{
long n;
char a[20];
double s;
L *p,*t,*k;
printf(" 请输入要插入的学生信息的学生学号 姓名 分数:\n");
scanf("%ld%s%lf",&n,a,&s);
p=(L *)malloc(sizeof(L));
p->student.num=n;
p->student.score=s;
strcpy(p->student.name,a);
if(!(*r))
{
*r=p;
(*r)->next=NULL;
return ;
}
if(p->student.num<(*r)->student.num)
p->next=(*r),(*r)=p;
else
{
t=*r;
k=t;
while(t->next&&t->next->student.num<=p->student.num)
t=t->next;
p->next=t->next;
t->next=p;
*r=k;
}
}
void sort(struct stucode **r)
{
struct stucode *t,*p,*q,*z;
if(!r)
{
printf("没有学生信息可排序!\n");
return ;
}
if(!(*r)||!(*r)->next)
return;
t=*r;
p=t->next;
t->next=NULL;
while(p)
{
q=p->next;
if(p->student.score>t->student.score)
{
p->next=t;
t=p;
}
else
{
z=t;
while(z->next&&z->next->student.score>=p->student.score)
z=z->next;
p->next=z->next;
z->next=p;
}
p=q;
}
*r=t;
}
void out(struct stucode *r)
{
printf("\n\n");
if(!r)
{
printf("没有学生信息可输出!\n");
return ;
}
while(r)
{
printf("%ld %s %.2lf\n",r->student.num,r->student.name,r->student.score);
r=r->next;
}
printf("\n\n");
}
void menu()
{
printf("\n 学生信息管理系统\n");
printf("\n 菜单\n\n");
printf("\n 1建立链表并显示\n");
printf("\n 2查找某学号的学生信息\n");
printf("\n 3查找某姓名的学生信息\n");
printf("\n 4删除某学号的学生信息\n");
printf("\n 5插入新的学生信息\n");
printf("\n 6按分数降序排列输出\n");
printf("\n 7输出\n");
printf("\n 0退出\n");
printf("\n 请选择您要执行的选项:\n");
}