c语言第十一十二十三章课后题答案Word格式.docx
- 文档编号:8490514
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:35
- 大小:143.14KB
c语言第十一十二十三章课后题答案Word格式.docx
《c语言第十一十二十三章课后题答案Word格式.docx》由会员分享,可在线阅读,更多相关《c语言第十一十二十三章课后题答案Word格式.docx(35页珍藏版)》请在冰点文库上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第十一 十二 十三 课后 答案