版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/*C语言重要程序算法实例整理*/递归练习:阶乘#includestdio.hfloat fac(int x);void main()int n;puts(Input the number:);scanf(%d,&n);float f;f=fac(n);printf(%d!=%2.f,n,f);float fac(int x)int f=x;if(x0)return(fs);elseSUM(n-1);void main()int x;int fsum;printf(please input the number:n);scanf(%d,&x);fsum=SUM(x);printf(SUM=%d
2、n,fsum);/*=*/动态分配内存应用:删除字符#includestdio.h#includestdlib.hvoid main()int n,i;printf(Please input n:);scanf(%d,&n);printf(Please input the string:);char *p;p=(char *)malloc(sizeof(char);for(i=0;in+1;i+)scanf(%c,p+i);*(p+i)=0;/puts(p);printf(Please input the k and the m: );static int k,m;scanf(%d,%d,&k
3、,&m);char *q;q=(char *)calloc(n,sizeof(char);int b;for(i=0;im;i+)b=i+k+m;*(q+i)=*(p+b);*(q+i)=0;/puts(q);*(p+k)=0;/puts(p);for(i=0;im;i+,k+)*(p+k)=*(q+i);/*(p+k)=0;printf(*After Delete*n);puts(p);/free(p);/free(q);/*=*/数据类型计算函数#includestdio.hvoid main()int a;long b;float f;double d;char c;printf(nin
4、t:%dnlong:%dnfloat:%dndouble:%dnchar:%dn,sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c);/*=*/基础练习:矩阵转置#includestdio.hvoid main()int a33=1,2,3,4,5,6,7,8,9,i,j,b33,t;for(i=0;i3;i+)for(j=0;j3;j+)if(i!=j)bji=aij;elsebij=aij;for(i=0;i3;i+)for(j=0;j3;j+)printf(%d,bij);printf(n);/=/基础练习:运算符#includestdio
5、.hvoid main()int a=12,b=7;printf(%d,%d,a%b,a/b);/(%)取余数,(/)取商数/=/递归法整数转换字符串#includestdio.hvoid fun2(int x,int n,char s)if(x0)printf(x0,data error!n);fun2;elseif(x0)n+;a=a/10;strn=0;fun2(x,n-1,str);puts(str);/=/整数转换字符串2#includestdio.h#includemath.hvoid fun1(int x,char s)int i,n,t,y;n=0;y=x;while(x0)n
6、+;x=x/10;for(i=0;y0;i+)t=y/(int)pow(10,n-1);si=0+t;y=y%(int)pow(10,n-1);n-;si=0;void main()int a;char str20;scanf(%d,&a);fun1(a,str);puts(str);/=/基础练习:自增自减的前后区分#includestdio.hvoid main()int i=8;printf(+i=%dn,+i);printf(i=%dn,i);printf(-i=%dn,-i);printf(i=%dn,i);/先进行加1或减1,再输出i的值printf(i+=%dn,i+);prin
7、tf(i=%dn,i);printf(i-=%dn,i-);printf(i=%dn,i);/先输出i值,再进行加1或减1printf(-i+=%dn,-i+);printf(i=%dn,i);/先输出-i,在加1printf(-i-=%dn,-i-);printf(i=%dn,i);/先输出-i,再减1/=/*链表建立的算法(p1指向新结点,p2指向表尾)S1 定义三个结点类型(struct node)的指针变量:head,p1,p2,head=NULLS2 调用malloc(#includestdlib.h)函数产生一个新结点,令p1,p2都指向该结点,并输入其数据成员S3 判断新节点的学
8、号是否为0,若学号不为0,则执行 S4,否则执行 S7S4 判断头指针(*head)是否为NULL。若head为NULL,则令头指针指向表头的结点,即,head=p1;若head不为NULL,则责令当前表尾结点的指针成员指向新结点,即,p2-next=p1;S5 令指针变量p2指向新的表尾结点:p2=p1;S6 调用malloc函数产生一个新结点,令p1指向新结点,并输入数据成员,然后执行S3;S7 表尾结点的指针成员赋空值,即,p2-next=NULL;S8 释放p1所指向的结点空间,即,free(p1);S9 返回链表的头指针即,return head;(思考:数据存在哪了?被调函数不是会
9、将内存擦去吗)链表输出的算法S1 判断链表的头指针是否为NULL,若head为NULL,则输出“链表为空”,然后结束;若链表不为空,则执行S2S2 另一个指针变量p赋值为headS3 判断p是否为NULL,若p不为NULL,则执行S4,否则结束循环S4 输出p数据成员的值,然后使p指向下一个结点,即,p=p-next。在执行S3链表删除的算法例如*/#includestdio.h#includestdlib.hstruct sal_nodeint num;char nam20;float salary;struct sal_node *next;#define L sizeof(struct
10、sal_node)struct sal_node *creat()struct sal_node *p,*q,*head=NULL;printf(Please input the worders informations:nnumbertnametsalaryn);p=q=(struct sal_node *)malloc(L);scanf(%d%s%f,&p-num,&p-nam,&p-salary);while(p-num!=0)if(head=NULL)head=p;elseq-next=p;q=p;p=(struct sal_node *)malloc(L);scanf(%d%s%f,
11、&p-num,&p-nam,&p-salary);q-next=NULL;free(p);return head;void list(struct sal_node *head)struct sal_node *r;if(head=NULL)printf(Empty!n);elseprintf(Salary informations:nnnumbertnametsalaryn);r=head;while(r!=NULL)printf(%dt%st%.2fn,r-num,r-nam,r-salary);r=r-next;void main()struct sal_node *head;head=
12、creat();list(head);/=/链表应用:职工工资动态信息#includestdio.h#includestdlib.hstruct salary_nodeint num;char nam20;float sal;struct salary_node *next;#define L sizeof(struct salary_node)struct salary_node *creat()struct salary_node *p,*q,*h=NULL;p=q=(struct salary_node *)malloc(L);printf(请输入职工信息:n编号t姓名t工资n);sca
13、nf(%d%s%f,&p-num,&p-nam,&p-sal);while(p-num!=0)if(h=NULL)h=p;elseq-next=p;q=p;p=(struct salary_node *)malloc(L);scanf(%d%s%f,&p-num,&p-nam,&p-sal);q-next=NULL;free(p);return h;void list(struct salary_node *h)struct salary_node *p;p=h;if(h=NULL)printf(无职工工资信息!);elseprintf(n编号t姓名t工资n);while(p!=NULL)pr
14、intf(%dt%st%.2fn,p-num,p-nam,p-sal);p=p-next;float ave(struct salary_node *h)int n=0;float s=0,a;struct salary_node *p;p=h;while(p!=NULL)s+=p-sal;p=p-next;n+;a=s/n;return a;void above(float x,struct salary_node *h)struct salary_node *p;p=h;while(p!=NULL)if(p-salx)printf(%sn,p-nam);p=p-next;void main
15、()float Ave;struct salary_node *h;h=creat();list(h);Ave=ave(h);printf(n职工工资平均水平:%.2fn,Ave);printf(高于职工工资平均水平的职工姓名是:n);above(Ave,h);/=/结构体应用:日期计算器#includestdio.hstruct dateint y;int m;int d;int Cal_day(int k,int m,int d)int i;int a212=31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,
16、30,31;for(i=0;im-1;i+)d+=aki;return d;void main()int i,k,d2,sd;struct date day2,*p,*q;q=p=day;for(i=0;iy,&p-m,&p-d);k=(p-y%4=0&p-y%100!=0)|(p-y%400=0);di=Cal_day(k,p-m,p-d);p+;p-;int u=p-y-q-y,v=q-y-p-y;if(u0)/向文件中写入字符串的循环条件是:字符串长度大于0fputs(s,f);/fputs:写入文件字符串,语法fputs(str,f)fputs(n,f);/敲击键盘的回车键对于计算机而
17、言是结束输入字符串,而程序员是换行,故须要加换行符rewind(f);/复位函数,避免多次打开文件,语法rewind(f)char cN;while(fgets(c,N,f)!=NULL)/若循环条件是fgets(c,N,f)!=NULL,则循环体中不需要读取字符串,否则文件中的字符串不能全部显示在屏幕上/循环条件不能是!feof(f),否则,屏幕上会所显示一行字符串/fgets:读取文件字符串,语法fgets(s,n,f)printf(%s,c);/另外,fgets(c,N,f)应经将文件中的字符串赋值给c,不需要另赋值rewind(f);char qN;FILE *g;puts(input
18、 no.2 path);gets(q);/必须赋值!if(g=fopen(q,w+)=NULL)printf(Havent Found the File!);exit(0);char b;dob=getchar();fputc(b,g);/fputc(char,g)/你已经打开另一个文件了!while(b!=n);/fputc只能输入一行字符串char a;rewind(g);/此处必须加复位函数!while(!feof(g)/此处是g!a=fgetc(g);printf(%c,a);fclose(f);fclose(g);/*总结:函数语法作用fopen(p,mode)打开文件fclose(
19、f)关闭文件fputc(char,f)向文件中写入一个字符fgetc(f)从文件中读取一个字符fputs(s,f)向文件中写入一个字符串fgets(s,n,f)从文件中读取一个含有n个字符的字符串*/=/文件操作:输出文本文档的行号#includestdio.h#includestdlib.h#define N 500void main()FILE *f;char nameN,c,strN;printf(Please input the filepath(name):);scanf(%s,name);getchar();int i=0;if(f=fopen(name,a+)=NULL)prin
20、tf(Havent Found %sn,name);exit(0);int n=1;printf(%d,n);doc=fgetc(f);putchar(c);if(c=n)n+;printf(%d,n);while(!feof(f);fclose(f);/=/指针练习:二维数组的指针表示#includestdio.hvoid main()int a35=76,0,21,53,15,368,0,97,12,0,86,96,24;int i,j;/下标表示for(i=0;i3;i+)for(j=0;j5;j+)printf(%4d,aij);printf(n);/行标增加,换行printf(nn)
21、;/行指针表示for(i=0;i3;i+)for(j=0;j5;j+)printf(%4d,*(ai+j);printf(n);printf(nn);/列指针表示for(i=0;i3;i+)for(j=0;j5;j+)printf(%4d,(*(a+i)j);printf(n);printf(nn);/二级指针表示for(i=0;i3;i+)for(j=0;j5;j+)printf(%4d,*(*(a+i)+j);/*(*(a+i)+j)是二级地址printf(n);printf(nn);/指针变量表示(双层循环)int *p;p=a0;/a0&a00*a (*a是一级地址)for(i=0;i
22、3;i+)for(j=0;j5;j+,p+)/地址也需要增加printf(%4d,*p);/直接输出*pprintf(n);printf(nn);/指针变量表示(单层循环)for(p=a0;pa0+15;p+)/妙,以地址作为循环条件if(p-a0)%4=0)printf(n);printf(%4,*p);/=/指针练习:行指针变量#includestdio.hvoid main()int a34=16,9862,8073,16,50,0,6,778,16,9;/数组的地址是连续的int (*p)4;/定义行指针变量int i,j;p=a;/p指向二维数组的首地址for(i=0;i3;i+)f
23、or(j=0;jy)return x;elsereturn y;void main()int a,b,q;int (*p)(int x,int y);/必须标明参数类型p=max;scanf(%d,%d,&a,&b);q=(*p)(a,b);printf(nmaximum=%dn,q);/注:在主函数中定义的仍是指针变量,致使该指针变量指向函数的地址,间接访问函数/=/指针练习:指针函数#includestdio.hint *max(int a,int b)/定义指针函数if(ab)return &a;elsereturn &b;/返回的是地址void main()int m,n,*p;pri
24、ntf(Please input the two numbers:);scanf(%d,%d,&m,&n);p=max(m,n);printf(nmax=%dn,*p);/=/指针练习:指针与一位数组#includestdio.hint max(int *x);int *max2(int *x);/指针函数的声明void main()int a10,*p,i,maxi,*maxi2;p=&a0;for(i=0;i10;i+)scanf(%d,p+i);maxi=max(p);printf(Maximum=%dn,maxi);maxi2=max2(p);/引用时不用加*printf(Maximu
25、m=%dn,maxi);int max(int *x)int j,Max;Max=*x;for(j=0;jMax)Max=*(x+j);return Max;int *max2(int *x)/指针函数的定义int j,Max;Max=*x;for(j=0;jMax)Max=*(x+j);return &Max;/返回地址/=/指针练习:指针与字符#includestdio.hvoid main()char str=hellon,*p=str;int i;printf(1:n);/直接输出puts(p);/pstrprintf(2:n);/输出字符串printf(%s,p);printf(3:
26、n);/输出字符,i控制循环圈数for(i=0;*(p+i)!=0;i+)printf(%c,*(p+i);printf(4:n);/地址也进行自增for(i=0;*(p+i)!=0;i+,p+)printf(%c,*p);/=/指针练习:输出N个数中的最大值和次最大值#includestdio.h#define N 5int max(int *x);int lessmax(int *x);void main()int aN,*p,i,MAX,LESSMAX;p=&a0;printf(Please input %d numbers:,N);for(i=0;iN;i+)scanf(%d,p+i)
27、;MAX=max(p);printf(Maximum=%dn,MAX);LESSMAX=lessmax(p);printf(Less Maximum=%dn,LESSMAX);int max(int *x)int i,Max=*x;for(i=0;iMax)Max=*(x+i);return (Max);int lessmax(int *x)int i,Max=*x,t;for(i=0;iMax)t=Max;Max=*(x+i);return (t);/=/指针应用:计算围成一圈的相邻三个数的和#includestdio.h#define N 30int SUM(int *x);void ma
28、in()int aN,*p=&a0,i,Sum,sn_1,sn_2;printf(Please input %d numbers:,N);for(i=0;iN;i+)scanf(%d,p+i);for(i=0;iN-2;i+,p+)Sum=SUM(p);printf(SUM%d=%dn,i+1,Sum);sn_2=aN-2+aN-1+a0;printf(SUM%d=%dn,N-1,sn_2);sn_1=aN-1+a0+a1;printf(SUM%d=%dn,N,sn_1);int SUM(int *x)int i,sum=0;for(i=0;i3;i+)sum+=*(x+i);return s
29、um;/=/指针应用:相邻三个数的和的最小值#includestdio.h#define N 10int SUM(int *x);int min(int *x);void main()int aN,*p=&a0,i,SumN,*q=&Sum0,MIN;printf(Please input %d numbers:,N);for(i=0;iN;i+)scanf(%d,p+i);for(i=0;iN-2;i+,p+)Sumi=SUM(p); printf(SUM%d=%dn,i+1,Sumi);SumN-2=aN-2+aN-1+a0; printf(SUM%d=%dn,N-1,SumN-2);Su
30、mN-1=aN-1+a0+a1; printf(SUM%d=%dn,N,SumN-1);MIN=min(q);printf(nnThe Smalleast Sum=%dn,MIN);int SUM(int *x)int i,sum=0;for(i=0;i3;i+)sum+=*(x+i);return sum;int min(int *x)int i,Min=*x;for(i=0;iN;i+)if(*(x+i)Min)Min=*(x+i);return Min;/=/指针应用:计算数组元素的乘积#includestdio.h#define N 5int factor(int *x);void m
31、ain()int aN,*p,i;p=&a0;printf(Please input %d numbers:,N);for(i=0;iN;i+)scanf(%d,&ai);/*for(i=0;iN;i+)printf(a%d=%d,*p=%dn,i+1,ai,*(p+i); 检验数组元素输入情况*/for(i=0;iN-1;i+)ai=factor(p+i);aN-1=a0*aN-1;printf(nn*After calculate:*nn);for(i=0;iN;i+)printf(a%d=%d,*p=%dn,i+1,ai,*(p+i);int factor(int *x)int k,m,
32、fac;k=*x;m=*(x+1);/printf(%d,%dn,m,k);检验m,k的值fac=k*m;return fac;/=/指针应用:找出N个数中的最值#includestdio.h#define N 5int max(int *x);int min(int *y);void main()int aN,*p,i,MAX,MIN;p=&a0;printf(Please input %d numbers:,N);for(i=0;iN;i+)scanf(%d,p+i);MAX=max(p);printf(Maximum=%dn,MAX);MIN=min(p);printf(Minimum=
33、%dn,MIN);int max(int *x)int i,Max=*x;for(i=0;iMax)Max=*(x+i);return (Max);int min(int *x)int i,Min=*x;for(i=0;iN;i+)if(*(x+i)Min)Min=*(x+i);return (Min);/=/指针应用:指针参数交换数字位置#includestdio.h#define N 10int exchange(int *x,int *y);void main()int i,aN,bN,*pa,*pb;pa=a;pb=b;printf(please input the a%d:,N);f
34、or(i=0;iN;i+)scanf(%d,&ai);printf(please input the b%d:,N);for(i=0;iN;i+)scanf(%d,&bi);exchange(pa,pb);printf(nn*After Change*nn);printf(New a%dn,N);for(i=0;iN;i+)printf(%dt,ai);printf(n);printf(New b%dn,N);for(i=0;iN;i+)printf(%dt,bi);printf(n);int exchange(int *x,int *y)int j,t;for(j=0;jN;j+)t=*x;
35、*x=*y;*y=t;x+;y+;return 0;/=/指针应用:指针数组存放月份名#includestdio.hvoid display(int month);void main()printf(Please input the month:);int m;scanf(%d,&m);display(m-1);void display(int month)char *p12=January,February,March,April,May,June,July,August,September,October,November,December;printf(The month you are
36、 searching isn%sn,*(p+month);/=-=/文件练习:结合结构体的编程#includestdio.h#includestdlib.h#define N 30#define M 10struct employeeint num;char namN,sex;int age;double sal;struct wagechar namN;double sal;#define L sizeof(struct employee)#define K sizeof(struct wage)void main()struct employee emp; struct wage wag;
37、FILE *f,*g;char pN,qN;puts(Input the No.1 filepath:);gets(p);puts(Input the No.2 filepath:);gets(q);if(f=fopen(p,ab+)=NULL)puts(Cant Find the File!);exit(0);if(f=fopen(q,ab+)=NULL)puts(Cant Find the File!);exit(0);char sN;int i;printf(Please Input The Employees Informations:nNumbertNametSextSalaryn)
38、;for(i=0;iM;i+)scanf(%s,s);emp.num=atoi(s);scanf(%s,&emp.nam);getchar();scanf(%c,&emp.sex);getchar();scanf(%s,s);emp.sal=atof(s);fwrite(&emp,L,1,f);getchar();rewind(f);puts(The Employees Informations are as below:nNumbertNametSextSalary);for(i=0;iM;i+)fread(&emp,L,1,f);printf(%dt%st%ct%lfn,emp.num,e
39、mp.nam,emp.sex,emp.sal);/rewind(f);char cN;while(!feof(f)wag.sal=emp.nam;wag.sal=emp.sal;fwrite(&wag,K,1,g);rewind(g);puts(The Wages Informations are as below:nNametSalary);while(!feof(g)fread(&wag,K,1,g);printf(%st%lfn,wag.nam,wag.sal);fclose(f);fclose(g);/=/结构体应用:图书管理系统#includestdio.h#includestrin
40、g.h#define N 2int Nums(char x,char y);int Pris(float x,float y);struct bookchar num18;char nam20;char aut10;float pri;int Nums(char x,char y)if(strcmp(x,y)=0)return 1;elsereturn 0;int Pris(float x,float y)if(xy)return 1;elsereturn 0;void main()struct book bN;printf(请输入%d本书的书号t书名t作者t价格信息:n,N);int i;f
41、or(i=0;iN;i+)scanf(%s,bi.num);getchar();scanf(%s,bi.nam);getchar();scanf(%s,bi.aut);getchar();scanf(%f,&bi.pri);printf(n书号t书名t作者t价格n);for(i=0;iN;i+)printf(%st%st%st%.2f,bi.num,bi.nam,bi.aut,bi.pri);printf(n);printf(n*n);printf(n1.书号查询t2.价格查询nn);char n18;float pri;int yn=1;while(yn=1)printf(请输入项目编号:)
42、;int k;scanf(%d,&k);switch(k)case 1:int nums;printf(请输入书目编号:);scanf(%s,n);printf(n书号t书名t作者t价格n);for(i=0;iN;i+)nums=Nums(n,bi.num);if(nums=1)printf(%st%st%st%.2f,bi.num,bi.nam,bi.aut,bi.pri);printf(n);break;case 2:int pris;printf(请输入书目价格:);scanf(%f,&pri);printf(n书号t书名t作者t价格n);for(i=0;iN;i+)pris=Pris(
43、pri,bi.pri);if(pris=1)printf(%st%st%st%.2f,bi.num,bi.nam,bi.aut,bi.pri);printf(n);break;printf(Do you want to continue?(1.Yes 2.No);scanf(%d,&yn);/=/课程设计:售票计算系统#includestdio.h#define N 5000 /宏定义的优点:不用逐个更改数据/核对票号函数int PHHD()int k=1;while(k=1)int PhaoN;int n,i,m;/售票统计printf(请管理员输入今日首张售出票号(每日限制售票%d张):,
44、N);scanf(%d,&n);printf(n);for(i=0;iN;i+)Phaoi=n;n+;/调试过程中检验是否将票号赋值给数组的所有元素:printf(%dn,Phaoi);/票号核对printf(请检票员输入需要核对的号码:);scanf(%d,&m);printf(n);for(i=0;iN;i+)if(Phaoi=m)printf(t您好,欢迎进入n);break;elseif(i=N-1)printf(t您所查询的票号今日无法使用,持票人无法进入!nn);printf(nt是否继续核对票号?(1.是 2.否));scanf(%d,&k);printf(n);return(0
45、);/计算售票数函数int JSSPS()int i,j,Pshu,k=1;printf(请输入今日售出的“第一张”及“最后一张”门票票号(两张票号之间用逗号分隔):);while(k=1)scanf(%d,%d,&i,&j);i-;if(i=j)Pshu=j-i;if(Pshunum,p-nam,p-col,p-cla,p-math,p-eng,p-clan,p-sum,p-ave);p=p-next;void list2(struct node *h)struct node *p;if(h=NULL)puts(Empty!);elsep=h;puts(The students Inform
46、ation:nTotaltNo.tNametCollegetClasstMathtEnglishtC_lantAve);while(p!=NULL)printf(%.2ft%dt%st%st%st%.2ft%.2ft%.2ft%.2fn,p-sum,p-num,p-nam,p-col,p-cla,p-math,p-eng,p-clan,p-ave);p=p-next;/creat a new linkliststruct node *creat(void)struct node *h=NULL, *p,*q,*r;char c=y;while(c=y|c=Y)puts(Input the st
47、udents Information:nNumbertNametCollegetClasstMathtEnglishtC_language);p=(struct node *)malloc(L);M+;printf(M:%dn,M);scanf(%d%s%s%s%f%f%f,&p-num,&p-nam,&p-col,&p-cla,&p-math,&p-eng,&p-clan,&p-sum,&p-ave);getchar();p-next=NULL;float sum,ave;sum=p-math + p-eng + p-clan;ave=sum/3;p-sum=sum;p-ave=ave;if
48、(h=NULL)h=p;elseq=h;while(p-numq-num)&(q-next!=NULL)r=q;q=q-next;if(p-numnum)if(q=h)h=p;elser-next=p;p-next=q;elseq-next=p;puts(Continue CREAT or not?(y/n);scanf(%c,&c);getchar();return h;/insert information into the created-linkliststruct node *insert(struct node *h)struct node *p,*q,*r;char c=y;wh
49、ile(c=y|c=Y)puts(Insert Information:nNumbertNametCollegetClasstMathtEnglishtC_language);p=(struct node *)malloc(L);M+;printf(M:%dn,M);scanf(%d%s%s%s%f%f%f,&p-num,&p-nam,&p-col,&p-cla,&p-math,&p-eng,&p-clan,&p-sum,&p-ave);getchar();p-next=NULL;float sum,ave;sum=p-math + p-eng + p-clan;ave=sum/3;p-sum
50、=sum;p-ave=ave;if(h=NULL)h=p;elseq=h;while(p-numq-num)&(q-next!=NULL)r=q;q=q-next;if(p-numnum)if(q=h)h=p;elser-next=p;p-next=q;elseq-next=p;puts(Continue INSERT or not?(y/n);scanf(%c,&c);getchar();return h;/delete the informationstruct node *del(struct node *h,int n)struct node *p,*q;p=h;while(p-num
51、!=n)&(p!=NULL)q=p;p=p-next;if(p-num=n)if(p=h)h=p-next;elseq-next=p-next;free(p);M-;printf(M:%dn,M);puts(Delete!);elseputs(Cant Delete!);return h;/modifystruct node *modify(struct node *h)int n;puts(Which students information do you want to modify?nInput the No.:);scanf(%d,&n);getchar();h=del(h,n);h=
52、insert(h);return h;/search the information by numberstruct node *sea_num(struct node *h)int n;puts(Input the Students Number:);scanf(%d,&n);getchar();struct node *p;p=h;while(p-num!=n)&(p-next!=NULL)p=p-next;if(p-num=n)puts(nNo.tNametCollegetClasstMathtEnglishtC_lantTotaltAve);printf(%dt%st%st%st%.2
53、ft%.2ft%.2ft%.2ft%.2fn,p-num,p-nam,p-col,p-cla,p-math,p-eng,p-clan,p-sum,p-ave);elseputs(Error!nCant Find the Students Number!);return h;/search the information by namestruct node *sea_nam(struct node *h)struct node *p;char namN;puts(Input the Students Name:);scanf(%s,nam);getchar();p=h;while(strcmp
54、(p-nam,nam)!=0)&(p-next!=NULL)p=p-next;if(strcmp(p-nam,nam)=0)puts(nNo.tNametCollegetClasstMathtEnglishtC_lantTotaltAve);printf(%dt%st%st%st%.2ft%.2ft%.2ft%.2ft%.2fn,p-num,p-nam,p-col,p-cla,p-math,p-eng,p-clan,p-sum,p-ave);elseputs(Error!nCant Find the Students Name!);return h;/search the informatio
55、n by collegestruct node *sea_col(struct node *h)struct node *p;char namN;puts(Input the Students College:);scanf(%s,nam);getchar();p=h;while(strcmp(p-nam,nam)!=0)&(p-next!=NULL)p=p-next;if(strcmp(p-col,nam)=0)puts(nNo.tNametCollegetClasstMathtEnglishtC_lantTotaltAve);printf(%dt%st%st%st%.2ft%.2ft%.2
56、ft%.2ft%.2fn,p-num,p-nam,p-col,p-cla,p-math,p-eng,p-clan,p-sum,p-ave);elseputs(Error!nCant Find the Students College!);return h;/search the information by classstruct node *sea_cla(struct node *h)struct node *p;char namN;puts(Input the Students Class:);scanf(%s,nam);getchar();p=h;while(strcmp(p-cla,
57、nam)!=0)&(p-next!=NULL)p=p-next;if(strcmp(p-nam,nam)=0)puts(nNo.tNametCollegetClasstMathtEnglishtC_lantTotaltAve);printf(%dt%st%st%st%.2ft%.2ft%.2ft%.2ft%.2fn,p-num,p-nam,p-col,p-cla,p-math,p-eng,p-clan,p-sum,p-ave);elseputs(Error!nCant Find the Students Class!);return h;/search_displaystruct node *
58、sea_dis(struct node *h)int k;int c=y;puts(*SEARCH*);puts(Choose the students information to search:);puts(nttt1.NUMBERt2.NAMEnttt3.COLLEGEt4.CLASSn);puts(Input the Item No. first:);scanf(%d,&k);getchar();switch(k)case 1:puts(*NUMBER SEARCH*);while(c=y|c=Y)h=sea_num(h);puts(Continue NUMBER SEARCH or
59、not?(y/n);scanf(%c,&c);getchar();break;case 2:puts(*NAME SEARCH*);while(c=y|c=Y)h=sea_nam(h);puts(Continue NAME SEARCH or not?(y/n);scanf(%c,&c);getchar();break;case 3:puts(*COLLEGE SEARCH*);while(c=y|c=Y)h=sea_col(h);puts(Continue COLLEGE SEARCH or not?(y/n);scanf(%c,&c);getchar();break;case 4:puts
60、(*CLASS SEARCH*);while(c=y|c=Y)h=sea_cla(h);puts(Continue CLASS SEARCH or not?(y/n);scanf(%c,&c);getchar();break;default:puts(Error!);return h;/statistics of the amount of averagevoid sta_ave(struct node *h)struct node *p;int i;int a5=0;p=h;while(p!=NULL)if(p-ave=90)&(p-aveave=80)&(p-aveave=70)&(p-a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖州浙江湖州南太湖新区人民法院招聘司法辅助人员历年参考题库(频考版)含答案解析
- 2025年山东滨州市沾化区枣富建设综合开发有限公司招聘笔试参考题库附带答案详解
- 2025年中铁通轨道运营有限公司招聘笔试参考题库含答案解析
- 2025年陕西省沣西置业有限公司招聘笔试参考题库含答案解析
- 2025年中国石油大庆炼化分公司招聘笔试参考题库含答案解析
- 威海经济技术开发区2025招考基层医疗卫生事业单位工作人员高频重点提升(共500题)附带答案详解
- 天津中新天津生态城管委会招考聘用高频重点提升(共500题)附带答案详解
- 国网河北省电力公司2025年高校应届毕业生招聘(第二批)高频重点提升(共500题)附带答案详解
- 国网上海市电力公司2025年高校毕业生招聘(第二批)高频重点提升(共500题)附带答案详解
- 国家铁路局工程质量监督中心面向社会公开招聘5人高频重点提升(共500题)附带答案详解
- 通信安全员ABC证报名考试题库及答案
- 开放系统10861《理工英语(4)》期末机考真题及答案(第103套)
- 思想道德与法治测试三考试附有答案
- 《中华民族大团结》(初中)-第7课-共同创造科学成就-教案
- 医疗耗材销售工作计划
- 《短视频拍摄与制作》课件-3短视频拍摄的三大技巧
- 《城镇燃气设施运行、维护和抢修安全技术规程 CJJ+51-2016》详细解读
- 太空舱民宿可行性研究报告
- 新《植物生产与环境》考试题库大全-中(多选题汇总)
- 手部安全防护培训参考课件
- 飞盘比赛团建策划方案
评论
0/150
提交评论