1、经典C程序100例7180经典c程序100例=71-80【程序71】题目:编写input()和output()函数输入,输出5个学生的数据记录。1.程序分析:2.程序源代码:#define N 5struct student char num6;char name8;int score4; stuN;input(stu)struct student stu; int i,j;for(i=0;iN;i+) printf(n please input %d of %dn,i+1,N);printf(num: );scanf(%s,stui.num);printf(name: );scanf(%s,
2、stui.name);for(j=0;j3;j+) printf(score %d.,j+1);scanf(%d,&stui.scorej);printf(n);print(stu)struct student stu; int i,j;printf(nNo. Name Sco1 Sco2 Sco3n);for(i=0;iN;i+) printf(%-6s%-10s,stui.num,stui.name);for(j=0;jn);for(i=0;idata=num;ptr-next=(link)malloc(sizeof(node);if(i=4) ptr-next=NULL;else ptr
3、=ptr-next;ptr=head;while(ptr!=NULL) printf(The value is =%dn,ptr-data);ptr=ptr-next;=【程序73】题目:反向输出一个链表。1.程序分析:2.程序源代码:/*reverse output a list*/#include stdlib.h#include stdio.hstruct list int data;struct list *next;typedef struct list node;typedef node *link;void main() link ptr,head,tail;int num,i;
4、tail=(link)malloc(sizeof(node);tail-next=NULL;ptr=tail;printf(nplease input 5 data=n);for(i=0;idata=num;head=(link)malloc(sizeof(node);head-next=ptr;ptr=head;ptr=ptr-next;while(ptr!=NULL) printf(The value is =%dn,ptr-data);ptr=ptr-next;=【程序74】题目:连接两个链表。1.程序分析:2.程序源代码:#include stdlib.h#include stdio.
5、hstruct list int data;struct list *next;typedef struct list node;typedef node *link;link delete_node(link pointer,link tmp)if (tmp=NULL) /*delete first node*/return pointer-next;else if(tmp-next-next=NULL)/*delete last node*/tmp-next=NULL;else /*delete the other node*/tmp-next=tmp-next-next;return p
6、ointer;void selection_sort(link pointer,int num) link tmp,btmp;int i,min;for(i=0;idata;btmp=NULL;while(tmp-next) if(mintmp-next-data)min=tmp-next-data;btmp=tmp;tmp=tmp-next;printf(40: %dn,min);pointer=delete_node(pointer,btmp);link create_list(int array,int num) link tmp1,tmp2,pointer;int i;pointer=
7、(link)malloc(sizeof(node);pointer-data=array0;tmp1=pointer;for(i=1;inext=NULL;tmp2-data=arrayi;tmp1-next=tmp2;tmp1=tmp1-next;return pointer;link concatenate(link pointer1,link pointer2) link tmp;tmp=pointer1;while(tmp-next)tmp=tmp-next;tmp-next=pointer2;return pointer1;void main(void) int arr1=3,12,
8、8,9,11;link ptr;ptr=create_list(arr1,5);selection_sort(ptr,5);=【程序75】题目:放松一下,算一道简单的题目。1.程序分析:2.程序源代码:main()int i,n;for(i=1;i1)break;if(n%2=0)printf(Even=);sum=dcall(peven,n);elseprintf(Odd=);sum=dcall(podd,n);printf(%f,sum);float peven(int n)float s;int i;s=1;for(i=2;i=n;i+=2)s+=1/(float)i;return(s)
9、;float podd(n)int n;float s;int i;s=0;for(i=1;i=n;i+=2)s+=1/(float)i;return(s);float dcall(fp,n)float (*fp)();int n;float s;s=(*fp)(n);return(s);=【程序77】题目:填空练习(指向指针的指针)1.程序分析:2.程序源代码:main() char *s=man,woman,girl,boy,sister;char *q;int k;for(k=0;k5;k+);/*这里填写什么语句*/printf(%sn,*q);=【程序78】题目:找到年龄最大的人,并
10、输出。请找出程序中有什么问题。1.程序分析:2.程序源代码:#define N 4#include stdio.hstatic struct man char name20;int age; personN=li,18,wang,19,zhang,20,sun,22;main()struct man *q,*p;int i,m=0;p=person;for (i=0;iN;i+)if(mage)q=p+;m=q-age;printf(%s,%d,(*q).name,(*q).age);=【程序79】题目:字符串排序。1.程序分析:2.程序源代码:main()char *str120,*str2
11、20,*str320;char swap();printf(please input three stringsn);scanf(%s,str1);scanf(%s,str2);scanf(%s,str3);if(strcmp(str1,str2)0) swap(str1,str2);if(strcmp(str1,str3)0) swap(str1,str3);if(strcmp(str2,str3)0) swap(str2,str3);printf(after being sortedn);printf(%sn%sn%sn,str1,str2,str3);char swap(p1,p2)ch
12、ar *p1,*p2;char *p20;strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);=【程序80】题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?1.程序分析:2.程序源代码:main()int i,m,j,k,count;for(i=4;i10000;i+=4) count=0;m=i;for(k=0;k5;k+)j=i/4*5+1;i=j;if(j%4=0)count+;elsebreak;i=m;if(count=4)printf(%dn,count);break;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1