c语言第十一十二十三章课后题答案Word格式.docx

上传人:b****6 文档编号:8490514 上传时间:2023-05-11 格式:DOCX 页数:35 大小:143.14KB
下载 相关 举报
c语言第十一十二十三章课后题答案Word格式.docx_第1页
第1页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第2页
第2页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第3页
第3页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第4页
第4页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第5页
第5页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第6页
第6页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第7页
第7页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第8页
第8页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第9页
第9页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第10页
第10页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第11页
第11页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第12页
第12页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第13页
第13页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第14页
第14页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第15页
第15页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第16页
第16页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第17页
第17页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第18页
第18页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第19页
第19页 / 共35页
c语言第十一十二十三章课后题答案Word格式.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言第十一十二十三章课后题答案Word格式.docx

《c语言第十一十二十三章课后题答案Word格式.docx》由会员分享,可在线阅读,更多相关《c语言第十一十二十三章课后题答案Word格式.docx(35页珍藏版)》请在冰点文库上搜索。

c语言第十一十二十三章课后题答案Word格式.docx

Print(pArray,num);

return0;

}

voidPrint(int*arr[],intlen)

inti;

for(i=0;

i<

len;

i++)

{

printf("

%s"

arr[i]);

}

\n"

);

错误分析:

指针数组中的元素为地址,是一个整型,所以应为num=sizeof(pArray)/sizeof(int);

而不是除以sizeof(char)

(2)

voidOutputArray(int*pa,intn);

voidInputArray(int*pa,intn);

voidmain()

inta[5];

Inputfivenumbers:

"

InputArray(a,5);

OutputArray(a,5);

voidInputArray(int*pa,intn)

int*a=pa;

for(;

pa<

a+n;

pa++)

scanf("

%d"

pa);

voidOutputArray(int*pa,intn)

pa++)

%4d"

*pa);

For(;

pa+n;

pa++)的语句中将指针循环变量更改了,破坏了循环结构,所以在写循环时为了防止指针循环变量被修改,应重新定义一个变量来标记传入的指针值。

(3)、

#defineSTUD30

#defineCOURSE5

voidPrint(int*pScore,intsum[],floataver[],intm,intn);

voidTotal(int*pScore,intsum[],floataver[],intm,intn);

inti,j,m,n,score[STUD][COURSE],sum[STUD];

floataver[STUD];

Howmanystudent?

scanf("

&

m);

Howmanycourse?

n);

Inputscore:

m;

for(j=0;

j<

n;

j++)

{

scanf("

score[i][j]);

}

Total(*score,sum,aver,m,n);

Print(*score,sum,aver,m,n);

voidTotal(int*pScore,intsum[],floataver[],intm,intn)

inti,j;

sum[i]=0;

j++)

sum[i]=sum[i]+pScore[i*n+j];

aver[i]=(float)sum[i]/n;

voidPrint(int*pScore,intsum[],floataver[],intm,intn)

Result:

printf("

%4d\t"

pScore[i*n+j]);

%5d\t%6.1f\n"

sum[i],aver[i]);

分析:

在创建二维数组时,就分配好空间行30列5,当进行列指针操作时,实际输入的人数会小于5,但偏移量仍然是I*COURSE+j,而不是i*n+j。

改后的结果:

11-3

int*p[12]={"

January"

february"

March"

April"

May"

June"

July"

"

August"

September"

October"

November"

December"

intm;

do{

请输入月份值:

"

if(m<

1||m>

12)

Illegelmonth!

}while(m<

12);

%d月---%s\n"

m,p[m-1]);

11-4

#defineN10

voidS*p1,int*p2);

voidTranspose2(int*a,intn);

voidTranspose(inta[][N],intn);

voidTranspose1(int(*a)[N],intn);

intn;

intj;

inta[N][N];

输入阶数:

}while(n>

10);

请输入第%d行:

\n"

i+1);

输入第%d行第%d列:

(i+1),(j+1));

a[i][j]);

原矩阵是:

i++)

%d\t"

a[i][j]);

\n1.引用数组下表法\n2.行指针法\n3.列指针法\n"

请选择:

switch(m)

case1:

Transpose(a,n);

break;

case2:

Transpose1(a,n);

case3:

Transpose2(*a,n);

转置矩阵是:

voidS*p1,int*p2)

inttemp;

temp=*p1;

*p1=*p2;

*p2=temp;

voidTranspose(inta[][N],intn)

for(j=i;

S[i][j],&

a[j][i]);

voidTranspose1(int(*a)[N],intn)

Swap(*(a+i)+j,*(a+j)+i);

voidTranspose2(int*a,intn)

S*n+j,a+j*n+i);

11-5

#defineM10

voidTranspose2(int*a,int*at,intm,intn);

voidTranspose(inta[][N],intat[][M],intm,intn);

voidTranspose1(int(*a)[N],intm,intn);

inta[M][N];

intat[N][M];

intp;

输入行数:

输入列数:

10||m>

p);

switch(p)

Transpose(a,at,m,n);

Transpose1(a,at,m,n);

Transpose2(*a,*at,m,n);

at[i][j]);

voidTranspose(inta[][N],intat[][M],intm,intn)

at[j][i]);

voidTranspose1(int(*a)[N],int(*at)[N],intm,intn)

Swap(*(a+i)+j,*(at+j)+i);

voidTranspose2(int*a,int*at,intm,intn)

S*N+j,at+j*M+i);

11-6

stdlib.h>

voidInputArray(int*p,intm,intn);

intFindMax(int*p,intm,intn,int*pRow,int*pCol);

intRow;

intCol;

inta;

int*p=NULL;

请输入行数:

请输入列数:

p=(int*)calloc(m*n,sizeof(int));

if(p==NULL)

没有足够的空间\n"

exit

(1);

InputArray(p,m,n);

a=FindMax(p,m,n,&

Row,&

Col);

最大值为:

%d,下标:

%d行%d列\n"

a,(Row+1),(Col+1));

free(p);

voidInputArray(int*p,intm,intn)

请输入第%d行第%d列:

p+i*n+j);

intFindMax(int*p,intm,intn,int*pRow,int*pCol)

int*a=p;

if(*p<

*(a+i*n+j))

{

p=a+i*n+j;

*pRow=i;

*pCol=j;

}

return*p;

12-1

采用结构体定义

typedefstructdate

intyear;

intmonth;

intday;

}Date;

typedefstructjob

charschool[10];

charzhicheng[10];

charzhiwu[10];

}Job;

structstudent

charname[10];

charsex;

Datebirthday;

Jobwork;

12-2

typedefstructtime

inthour;

intminute;

intsecond;

}Time;

voidupdate(Time*p)

p->

second++;

if(p->

second==60)

p->

second=0;

minute++;

minute==60)

minute=0;

hour++;

hour==24)

hour=0;

voiddelay()

intt;

for(t=0;

t<

100000000;

t++);

voiddispaly(Time*p)

%d:

%d:

%d\n"

p->

hour,p->

minute,p->

second);

Timet;

t.second=0;

t.hour=0;

t.minute=0;

1000000;

update(&

t);

dispaly(&

delay();

12-3

minute=p->

second/60;

second%=60;

hour=p->

minute/60;

12-4

string.h>

typedefstructcandidate

intnum;

}Xuan;

Xuanpeople[3]={{"

zhang"

0},{"

li"

wang"

0}};

chartemp[10];

intfp=0;

intflag=0;

10;

flag=0;

请投票:

gets(temp);

3;

if(strcmp(temp,people[j].name)==0)

people[j].num++;

flag=1;

if(flag==0)

fp++;

废票:

%d张\n"

fp);

%-10s得票:

people[i].name,people[i].num);

12-5

typedefstructcard

charcolor[13][10];

charsuit[10];

}Card;

CardPai[4]={

{{"

A"

2"

3"

4"

5"

6"

7"

8"

9"

10"

Jack"

Queen"

King"

},"

Spades"

},

Hearts"

Clubs"

Diamonds"

};

4;

13;

%s%s\t"

Pai[i].suit,Pai[i].color[j]);

13-1

FILE*fp;

charstr[20];

type"

gets(str);

fp=fopen(str,"

r"

if(fp==NULL)

文件打开有误\n"

exit(0);

!

feof(fp);

%5d"

fgetc(fp));

13-2

typedefstructdade

}DATE;

typedefstructstudent

longID;

charse

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2