5.輸入一個(gè)3×6的二維整型數(shù)組,輸出其中的最大值、最小值及其所在的行列下標(biāo)。
「解」找出其最大值和最小值,及它們的行列位置。采用按行按列順序遍歷數(shù)組的方法找出數(shù)組的最大值、最小值,以及它們在數(shù)組中的位置指針。輸出時(shí),將位置指針轉(zhuǎn)換成行下標(biāo)和列下標(biāo)。程序如下:
# include
# define N 3
# define M 6
main()
{ int a[N][M],*maxp,*minp,*q,t;
printf(“輸入%d個(gè)整數(shù)\n”, N*M);
for(q=a[0];q *a+N*M;q++) {
scanf(“%d”, t);*q=t;
}
maxp=minp=*a;
for(q=a[0];q *a+ N*M; q++) {
if(*maxp *q) maxp=q;
if(*minp *q) minp=q;
}
printf(“最大值:%d它的行下標(biāo)是%d它的列下標(biāo)是%d\n”,
*maxp,(maxp-*a)/M,(maxp-*a)%M);
printf(“最小值:%d它的行下標(biāo)是%d它的列下標(biāo)是%d\n”,
*minp,(minp-*a)/M,(minp-*a)%M;
}
6.輸入三個(gè)字符串,找出其中最大的字符串。
「解」將輸入的三個(gè)字符率分別存于三個(gè)一維字符數(shù)組中,另用一個(gè)字符指針數(shù)組,分別指向這三個(gè)字符串,然后用循環(huán)控制這三個(gè)字符串的比較,找出最大的字符串。兩字符串比較時(shí),程序不用標(biāo)準(zhǔn)庫函數(shù),而用兩字符串的對(duì)應(yīng)字符比較來實(shí)現(xiàn)。完整程序如下:
# include
# define N 120
# define M 3
mian()
{ char s1[N], s2[N],s3[N],*strs[M]={s1,s2,s3},*p,*q,*ms;
int i;
printf(“輸入%d個(gè)字符串\n”, M) ;
for(i= 0; i M; I++)
scanf(“%s”,strs);
ms=strs[0];
for(i=1;i M; I++) {
for( p=ms,q=strs;*p! =‘\0’ *p==*q;p++,q++);
if(*p *q) ms=strs;
}
printf(“最大字符串:%s\n”,ms);
}