c程序設(shè)計(jì)第四版譚浩強(qiáng)第九章答案.docx
《c程序設(shè)計(jì)第四版譚浩強(qiáng)第九章答案.docx》由會(huì)員分享,可在線閱讀,更多相關(guān)《c程序設(shè)計(jì)第四版譚浩強(qiáng)第九章答案.docx(15頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、#include 2、 days+=a[i];
days+=d;
return days;
}
}
struct date
{
int year;
int month;
int day;
int days;
}a;
int main()
{
printf("enter date:");
scanf("%d %d %d",&a.year,&a.month,&a.day);
a.days=days(a.year,a.month,a.day);
printf("%d年%d月%d日是該年的第%d天\n",a.year,a.month,a.day,a.days) 3、;
}
*/
/*#define N 10 //第3、4題時(shí)N為5,第5題時(shí)N為10
struct student
{
int num;
char name[20];
float score[3];
float ave; //第3、4、5題共用一個(gè)結(jié)構(gòu)體類型
}stu[N];
*/
/*
void print(struct student a[])
{
int i;
printf("學(xué)號(hào) 姓名\t三門課成績\n");
for(i=0;i 4、tf("%ld %s\t%-5.1f %-5.1f %-5.1f\n",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2]);
}
int main()
{
int i;
printf("請輸入%d個(gè)學(xué)生的信息:學(xué)號(hào)、姓名、三門課成績:\n",N);
for(i=0;i 5、stu);
}
*/
/*
void print(struct student a[])
{
int i;
printf("學(xué)號(hào) 姓名\t三門課成績\n");
for(i=0;i 6、nt i;
printf("請輸入%d個(gè)學(xué)生的信息:學(xué)號(hào)、姓名、三門課成績:\n",N);
for(i=0;i 7、0102 chen 60 64 90
10103 guo 80 78 90
10104 lu 80 64 90
10105 xu 60 65 90
10106 huang 90 78 90
10107 chen 70 66 90
10108 rong 90 72 90
10109 yang 50 63 90
10110 zhang 50 71 90
*/
/*
int main()
{
int i,m=0;
float average=0;
printf("請輸入%d個(gè)學(xué)生的信息:學(xué)號(hào)、姓名、三門課成績:\n",N);
for(i=0;i 8、
{
scanf("%d %s %f %f %f",&stu[i].num,&stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
stu[i].ave=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;
average+=stu[i].ave/N;
}
for(i=1;i 9、n學(xué)號(hào):%d\n姓名:%s\n三門課成績:%5.1f,%5.1f,%5.1f\n平均成績:%6.2f\n",average,stu[m].num,stu[m].name,stu[m].score[0],stu[m].score[1],stu[m].score[2],stu[m].ave);
}
*/
/*
#define N 13 //定義人數(shù)
struct a
{
int num; //原來的序號(hào)
int count; //報(bào)數(shù)數(shù)目
struct a *next;
};
10、
int main()
{
int i,j=1;
struct a *p1,*p2,b[N];
p1=b;
for(i=0;i 11、個(gè)人
{
p1->count=j; //報(bào)數(shù)
if(j==2)
p2=p1; //p2的作用是標(biāo)記報(bào)數(shù)為2的人
if(j==3)
{
j=1;
p2->next=p1->next;
//將報(bào)數(shù)為3的next成員賦值給上一個(gè)報(bào)數(shù)為2的next成員,使之指向下一個(gè)報(bào)數(shù)為1的//成員;
}
else
j+=1;
p1=p1->next; //p1指向下一個(gè)count不為3的成員
}
printf("最后留在圈子的人原來的序號(hào)為:%d\n",p 12、1->num);
}
*/
/*
# define L sizeof(struct student)
struct student
{
long num;
float score;
struct student *next;
};
int n;
struct student *creat(void) //生成單向動(dòng)態(tài)鏈表的函數(shù)
{
struct student *head;
struct student *p1,*p2;
n=0;
p1=p2=malloc(L);
scanf("%ld,%f",&p1-> 13、num,&p1->score);
head=NULL;
while(p1->num!=0)
{
n+=1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=malloc(L);
scanf("%ld,%f",&p1->num,&p1->score);
}
p2->next=NULL;
return head;
}
void print(struct student *head) //輸出鏈表的函數(shù)
{
struct student *p=head;
prin 14、tf("\nnow,these records are:\n");
while(p!=NULL)
{
printf("%ld %5.1f\n",p->num,p->score);
p=p->next;
}
}
struct student *del1(struct student *head,long num) //刪除指定節(jié)點(diǎn)的函數(shù),方法一,指定刪除節(jié)點(diǎn)的數(shù)據(jù)
{
struct student *p1,*p2;
p1=head;
if(p1->num==num)
return head=p1->next;
else
{
15、 while(p1->num!=num)
{
p2=p1;
p1=p1->next;
}
p2->next=p1->next;
p1->next=NULL;
return head;
}
}
struct student *del2(struct student *head,int n) //方法二,指定刪除節(jié)點(diǎn)序號(hào)
{
struct student *p1,*p2;
int i=1;
p1=head;
if(i==n)
return head=p1->next;
else
{ 16、
while(i++ 17、要?jiǎng)h除節(jié)點(diǎn)序號(hào):");
scanf("%ld",&num); //scanf("%d",&n);
head=del1(head,num); //head=del2(head,n);
print(head);
}
*/
/*
# define L sizeof(struct student)
struct student
{
long num;
float score;
struct student *next;
};
int n;
struct student 18、*creat(void) //生成單向動(dòng)態(tài)鏈表的函數(shù)
{
struct student *head;
struct student *p1,*p2;
n=0;
p1=p2=malloc(L);
scanf("%ld,%f",&p1->num,&p1->score);
head=NULL;
while(p1->num!=0)
{
n+=1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=malloc(L);
scanf("%ld,%f",&p1- 19、>num,&p1->score);
}
p2->next=NULL;
return head;
}
void print(struct student *head) //輸出鏈表的函數(shù)
{
struct student *p=head;
printf("\nnow,these records are:\n");
while(p!=NULL)
{
printf("%ld %5.1f\n",p->num,p->score);
p=p->next;
}
}
struct student *del1(struct studen 20、t *head,long num)
//刪除指定節(jié)點(diǎn)的函數(shù),num為指定刪除節(jié)點(diǎn)的數(shù)據(jù)
{
struct student *p1,*p2;
p1=head;
if(p1->num==num)
return head=p1->next;
else
{
while(p1->num!=num)
{
p2=p1;
p1=p1->next;
}
p2->next=p1->next;
p1->next=NULL;
return head;
}
}
struct student * 21、insert(struct student *head,struct student *p,int n)
//插入節(jié)點(diǎn)的函數(shù),n為新節(jié)點(diǎn)序號(hào)
{
struct student *p1,*p2;
int i=1;
p1=head;
if(i==n)
{
p->next=p1;
head=p;
}
else
{
while(i++ 22、
int main()
{
struct student *head,*p;
int n;
long num;
head=creat();
print(head);
printf("\n輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):");
scanf("%d",&num);
head=del(head,num);
print(head);
p=malloc(L);
//為插入的新節(jié)點(diǎn)開辟單元,否則p 23、的值不確定
printf("\n輸入要添加學(xué)生的學(xué)號(hào),成績,序號(hào):");
scanf("%ld,%f,%d",&p->num,&p->score,&n);
head=insert(head,p,n);
print(head);
}
*/
/*
# define L sizeof(struct student)
struct student
{
int num;
float score;
struct student *next;
};
int n;
struct student *creat(void) //生成單向動(dòng)態(tài)鏈 24、表的函數(shù)
{
struct student *head;
struct student *p1,*p2;
n=0;
p1=p2=malloc(L);
scanf("%d %f",&p1->num,&p1->score);
head=NULL;
while(p1->num!=0)
{
n+=1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=malloc(L);
scanf("%d %f",&p1->num,&p1->score);
}
p2->next=NULL 25、;
return head;
}
void print(struct student *head) //輸出鏈表的函數(shù)
{
struct student *p=head;
printf("\nnow,these records are:\n");
while(p!=NULL)
{
printf("%d %5.1f\n",p->num,p->score);
p=p->next;
}
}
struct student *sort(struct student *head) //建立鏈表排序函數(shù)
{
stru 26、ct student *p1,*p2;
int t;
float s;
p1=head;
p2=p1->next;
while(p1&&p2)
//不能寫為p1,否則當(dāng)p1指向最后一個(gè)結(jié)點(diǎn)時(shí),最后一句循環(huán)語句出問題
{
while(p2)
{
if(p1->num>p2->num)
{
t=p1->num;
s=p1->score;
p1->num=p2->num;
p1->score=p2->score;
p2->num=t;
p2-> 27、score=s;
p2=p2->next;
}
else //不能省略else語句,否則遇到p1->num 28、
t=p; //循環(huán)結(jié)束時(shí)t將指向a鏈表的最后一個(gè)指針
p=p->next;
}
t->next=head2;
return head1;
}
int main()
{
struct student *a,*b;
printf("輸入鏈表a:\n");
a=creat();
printf("輸入鏈表b:\n");
b=creat();
print(sort(cat(a,b)));
}
*/
/*測試數(shù)據(jù)
10018 89
10016 64
10014 81
10012 94
0 0
100 29、17 67
10015 68
10013 76
10011 85
0 0
*/
/*
# define L sizeof(struct student)
struct student
{
long num;
char name[20];
struct student *next;
};
int n;
struct student *creat(void) //生成單向動(dòng)態(tài)鏈表的函數(shù)
{
struct student *head;
struct student *p1,*p2;
n=0;
p1=p2=ma 30、lloc(L);
scanf("%ld %s",&p1->num,p1->name);
head=NULL;
while(p1->num!=0)
{
n+=1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=malloc(L);
scanf("%ld %s",&p1->num,p1->name);
}
p2->next=NULL;
return head;
}
void print(struct student *head) //輸出鏈表的函數(shù)
{
str 31、uct student *p=head;
printf("\n現(xiàn)在鏈表a為:\n");
while(p!=NULL)
{
printf("%ld %s\n",p->num,p->name);
p=p->next;
}
}
struct student *delsame(struct student *a,struct student *b) //從a中刪去與b相同學(xué)號(hào)的節(jié)點(diǎn)
{
struct student *p1,*p2,*p3;
long num;
int s,k=0;
p3=p1=a;p2=b;
while(p1)
32、{
s=0;
num=p1->num;
while(p2)
{
if(p2->num!=num)
p2=p2->next;
else
{
s=1;
break;
}
}
if(s==1)
p3->next=p1->next; //若a最后一個(gè)相同,p3的指針數(shù)據(jù)為null
else
{
p3=p1; //每找到一個(gè)與b不相等的指針時(shí),p3指向它
k+=1; //每找到一個(gè)與b不相等的指針時(shí),k累加1
if( 33、k==1) //找到第一個(gè)與b不相等的指針時(shí),將頭指針賦值給a
a=p1;
}
p1=p1->next; //p1指向下一個(gè)指針
p2=b; //p2重新指向鏈表b開頭
}
if(k==0) //k=0表明a,b鏈表相同,返回null
return a=NULL;
else
return a;
}
int main()
{
struct student *a,*b;
printf("輸入鏈表a:\n");
a=creat();
printf("輸入鏈表b:\n") 34、;
b=creat();
a=delsame(a,b);
print(a);
}
*/
/*
#define L sizeof(struct inf)
struct inf
{
long num;
int age;
char name[20];
char sex;
struct inf *next;
};
int n;
struct inf *creat(void) //生成單向動(dòng)態(tài)鏈表的函數(shù)
{
struct inf *head;
struct inf *p1,*p2;
n=0;
p1= 35、p2=malloc(L);
scanf("%ld %s %c %d",&p1->num,p1->name,&p1->sex,&p1->age);
head=NULL;
while(p1->num!=0)
{
n+=1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=malloc(L);
scanf("%ld %s %c %d",&p1->num,p1->name,&p1->sex,&p1->age);
}
p2->next=NULL;
return head;
}
void prin 36、t(struct inf *head) //輸出鏈表的函數(shù)
{
struct inf *p=head;
printf("\nnow,these inf are:\n");
while(p!=NULL)
{
printf("%ld %s %c %d\n",p->num,p->name,p->sex,p->age);
p=p->next;
}
}
struct inf *delage(struct inf *head,int a) //刪除指定年齡節(jié)點(diǎn)的函數(shù)
{
struct inf *p1,*p2;
p 37、1=head;
while(p1->age==a)
p1=p1->next;
head=p1;
p2=p1;
while(p1->next!=NULL)
{
if(p1->age==a)
{
p2->next=p1->next;
p1=p1->next;
}
else
{
p2=p1;
p1=p1->next;
}
}
if(p1->age==a)
p2->next=NULL;
return head;
}
int main()
{
struct inf *head;
38、int a;
head=creat();
print(head);
printf("\n輸入要?jiǎng)h除的年齡:");
scanf("%d",&a);
head=delage(head,a);
print(head);
}
*/
/*測試數(shù)據(jù)
10009 chen f 24
10010 wang m 28
10011 li f 28
10012 zhao m 28
10013 chen f 24
10014 wei m 25
10015 yang f 26
10016 tian m 28
10016 tian m 28
10017 mei f 27
10018 liu m 28
10019 chen f 24
*/
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點(diǎn)美食推薦
- XX國有企業(yè)黨委書記個(gè)人述責(zé)述廉報(bào)告及2025年重點(diǎn)工作計(jì)劃
- 世界濕地日濕地的含義及價(jià)值
- 20XX年春節(jié)節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)人到場心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫之美生活之美
- 節(jié)后開工第一課輕松掌握各要點(diǎn)節(jié)后常見的八大危險(xiǎn)
- 廈門城市旅游介紹廈門景點(diǎn)介紹廈門美食展示
- 節(jié)后開工第一課復(fù)工復(fù)產(chǎn)十注意節(jié)后復(fù)工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓(xùn)
- 深圳城市旅游介紹景點(diǎn)推薦美食探索
- 節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)勿忘安全本心人人講安全個(gè)個(gè)會(huì)應(yīng)急
- 預(yù)防性維修管理
- 常見閥門類型及特點(diǎn)
- 設(shè)備預(yù)防性維修
- 2.乳化液泵工理論考試試題含答案