1、C程序设计第四版谭浩强习题例题第9章第9章例9.1 #includeint main() struct Student long int num; char name20; char sex; char addr20; a=10101,Li Lin,M,123 Beijing Road; printf(No.%ldnname:%snsex:%cnaddress:%sn,a.num,a.name,a.sex,a.addr); return 0;例9.2#includeint main() struct Student int num; char name20; float score; stud
2、ent1,student2; scanf(%d%s%f,&student1.num,&student1.name,&student1.score); scanf(%d%s%f,&student2.num,&student2.name,&student2.score); printf(The higher score is :n); if(student1.scorestudent2.score) printf(%d %s %6.2fn,student1.num,student1.name,student1.score); else if(student1.scorestudent2.score
3、) printf(%d %s %6.2fn,student2.num,student2.name,student2.score); else printf(%d %s %6.2fn,student1.num,student1.name,student1.score); printf(%d %s %6.2fn,student2.num,student2.name,student2.score); return 0;例9.3#include#includestruct Perspon char name20; int count; leader3=Li,0,Zhang,0,Sun,0;int ma
4、in() int i,j; char leader_name20; for(i=1;i=10;i+) scanf(%s,leader_name); for(j=0;j3;j+) if(strcmp(leader_name,leaderj.name)=0)leaderj.count+; printf(nResult:n); for(i=0;i3;i+) printf(%5s:%dn,leaderi.name,leaderi.count); return 0;例9.4#includestruct Student int num; char name20; float score;int main(
5、) struct Student stu5=10101,Zhang,78,10103,Wang,98.5,10106,Li,86,10108,Ling,73.5,10110,Sun,100; struct Student temp; const int n=5; int i,j,k; printf(The order is:n); for(i=0;in-1;i+) k=i; for(j=i+1;jstuk.score) k=j; temp=stuk; stuk=stui; stui=temp; for(i=0;in;i+) printf(%6d %8s %6.2fn,stui.num,stui
6、.name,stui.score); printf(n); return 0;例9.5#include#includeint main() struct Student long num; char name20; char sex; float score; ; struct Student stu_1; struct Student *p; p=&stu_1; stu_1.num=10101; strcpy(stu_1.name,Li Lin); stu_1.sex=M; stu_1.score=89.5; printf(No.:%ldnname:%snsex:%cnscore:%5.1f
7、n,stu_1.num,stu_1.name,stu_1.sex,stu_1.score); printf(n); printf(No.:%ldnname:%snsex:%cnscore:%5.1fn,(*p).num,(*p).name,(*p).sex,(*p).score); return 0;例9.6#include struct Student int num; char name20; char sex; int age;struct Student stu3=10101,Li Lin,M,18,10102,Zhang Fang,M,19,10104,Wang Min,F,20;i
8、nt main() struct Student *p; printf(No. Name sex agen); for(p=stu;pnum,p-name,p-sex,p-age); return 0;例9.7#include #define N 3struct Student int num; char name20; float score3; float aver;int main() void input(struct Student stu); struct Student max(struct Student stu); void print(struct Student stud
9、); struct Student stuN,*p=stu; input(p); print(max(p); return 0;void input(struct Student stu) int i; printf(请输入各学生的信息:学号、姓名、三门课成绩:n); for(i=0;iN;i+) scanf(%d %s %f %f %f,&stui.num,&stui.name,&stui.score0,&stui.score1,&stui.score2); stui.aver=(stui.score0+stui.score1+stui.score2)/3.0; struct Student
10、 max(struct Student stu) int i,m=0; for(i=0;istum.aver)m=i; return stum;void print(struct Student stud) printf(n成绩最高的学生是:n); printf(学号:%dn姓名:%sn三门成绩:%5.1f,%5.1f,%5.1fn平均成绩:%6.2fn,stud.num,stud.name,stud.score0,stud.score1,stud.score2,stud.aver); 例9.8#include #define N 3struct Student int num; float
11、score; struct Student *next;int main() struct Student a,b,c,*head,*p; a.num=10101;a.score=89.5; b.num=10103;b.score=90; c.num=10107;c.score=85; head=&a; a.next=&b; b.next=&c; c.next=NULL; p=head; do printf(%ld %5.1fn,p-num,p-score); p=p-next; while(p!=NULL); return 0;例9.9#include#include#define LEN
12、sizeof(struct Student)struct Student long num; float score; struct Student *next;int n;struct Student *creat(void) struct Student *head; struct Student *p1,*p2; n=0; p1=p2=(struct Student *)malloc(LEN); scanf(%ld,%f,&p1-num,&p1-score); head=NULL; while(p1-num!=0) n=n+1; if(n=1)head=p1; else p2-next=
13、p1; p2=p1; p1=(struct Student * )malloc(LEN); scanf(%ld,%f,&p1-num,&p1-score); p2-next=NULL; return(head);int main() struct Student *pt; pt=creat(); printf(nnum:%ldnscore:%5.1fn,pt-num,pt-score); return 0;例9.10#include#include#define LEN sizeof(struct Student)struct Student long num; float score; st
14、ruct Student *next;int n;struct Student *creat() struct Student *head; struct Student *p1,*p2; n=0; p1=p2=(struct Student *)malloc(LEN); scanf(%ld,%f,&p1-num,&p1-score); head=NULL; while(p1-num!=0) n=n+1; if(n=1)head=p1; else p2-next=p1; p2=p1; p1=(struct Student * )malloc(LEN); scanf(%ld,%f,&p1-num
15、,&p1-score); p2-next=NULL; return(head);void print(struct Student *head) struct Student *p; printf(nNow,These %d records are:n,n); p=head; if(head!=NULL) do printf(%ld %5.1fn,p-num,p-score); p=p-next; while(p!=NULL);void main() struct Student *head; head=creat(); print(head);例9.11#includestruct int
16、num; char name10; char sex; char job; union int clas; char position10; category;person2;int main() int i; for(i=0;i2;i+) printf(please enter the data of person:n); scanf(%d %s %c %c,&personi.num,&personi.name,&personi.sex,&personi.job); if(personi.job=s) scanf(%d,&personi.category.clas); else if(per
17、soni.job=t) scanf(%s,&personi.category.position); else printf(Input error!); printf(n); printf(No. name sex job calss/positionn); for(i=0;i2;i+) if(personi.job=s) printf(%-6d%-10s%-4c%-4c%-10dn,personi.num,personi.name,personi.sex,personi.job,personi.category.clas); else printf(%-6d%-10s%-4c%-4c%-10
18、sn,personi.num,personi.name,personi.sex,personi.job,personi.category.position); return 0;例9.12#includeint main() enum Colorred,yellow,blue,white,black; enum Color i,j,k,pri; int n,loop; n=0; for(i=red;i=black;i+) for(j=red;j=black;j+) if(i!=j) for(k=red;k=black;k+) if(k!=i&k!=j) n=n+1; printf(%-4d,n
19、); for(loop=1;loop=3;loop+) switch(loop) case 1:pri=i;break; case 2:pri=j;break; case 3:pri=k;break; default:break; switch(pri) case red:printf(%-10s,red);break; case yellow:printf(%-10s,yellow);break; case blue:printf(%-10s,blue);break; case white:printf(%-10s,white);break; case black:printf(%-10s,
20、black);break; default:break; printf(n); printf(ntotal:%dn,n);return 0; 习题(本人很懒,本次作业很多都没写scanf输入数据)1.#includeint main() struct Date int year; int month; int day; a=2015,6,15; int b=31,28,31,30,31,30,31,31,30,31,30,31; int i,leap=0,sum=0; if(a.month2) for(i=0;ia.month-1;i+) sum+=bi; if (a.year%4=0&a.y
21、ear%100!=0|a.year%400=0) leap=1; sum+=a.day+leap; else for(i=0;ia.month-1;i+) sum+=bi; sum+=a.day; printf(%d年%d月%d日是%d年的第%d天.n,a.year,a.month,a.day,a.year,sum);2.#includestruct Date int year; int month; int day; ;int main() int days(struct Date c); struct Date a=2015,6,15; int sum; sum=days(a); prin
22、tf(%d年%d月%d日是%d年的第%d天.n,a.year,a.month,a.day,a.year,sum);int days(struct Date c) int b=31,28,31,30,31,30,31,31,30,31,30,31; int i,leap=0,s=0; if(c.month2) for(i=0;ic.month-1;i+) s+=bi; if (c.year%4=0&c.year%100!=0|c.year%400=0) leap=1; s+=c.day+leap; else for(i=0;ic.month-1;i+) s+=bi; s+=c.day; retu
23、rn(s);3.#includestruct Student long num; char name10; float score3;void main() void print(struct Student *q); struct Student a5=10010,John,88,89,90,10012,Jimmy,59,68,47,10015,Dorothy,89,78,99,10020,Moriarty,100,99.5,95,10026,Grace,78,60,75; struct Student *p=a; print(p);void print(struct Student *q)
24、 int i; for(i=0;inum,q-name,q-score0,q-score1,q-score2); q+; 4.#includestruct Student long num; char name10; float score3;int main() void print(struct Student *q); void input(struct Student *q); struct Student a5; struct Student *p=a; input(p); print(p); return 0;void input(struct Student *q) int i;
25、 for(i=0;inum,&q-name,&q-score0,&q-score1,&q-score2); q+; void print(struct Student *q) int i; for(i=0;inum,q-name,q-score0,q-score1,q-score2); q+; 5.#includestruct Student long num; char name10; float score3; float aver;int main() void input(struct Student *q); void print(struct Student *q); struct Student a10; struct Student *p=a; int i,j=0,k=0; input(p); print(p); for(i=0;i=10;i+) if(kai
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1