2013自考“高级语言程序设计”习题答案详解(31)
5.输入一个3×6的二维整型数组,输出其中的最大值、最小值及其所在的行列下标。
「解」找出其最大值和最小值,及它们的行列位置。采用按行按列顺序遍历数组的方法找出数组的最大值、最小值,以及它们在数组中的位置指针。输出时,将位置指针转换成行下标和列下标。程序如下:
# include
# define N 3
# define M 6
main()
{ int a[N][M],*maxp,*minp,*q,t;
printf(“输入%d个整数\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它的行下标是%d它的列下标是%d\n”,
*maxp,(maxp-*a)/M,(maxp-*a)%M);
printf(“最小值:%d它的行下标是%d它的列下标是%d\n”,
*minp,(minp-*a)/M,(minp-*a)%M;
}
6.输入三个字符串,找出其中最大的字符串。
「解」将输入的三个字符率分别存于三个一维字符数组中,另用一个字符指针数组,分别指向这三个字符串,然后用循环控制这三个字符串的比较,找出最大的字符串。两字符串比较时,程序不用标准库函数,而用两字符串的对应字符比较来实现。完整程序如下:
# 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个字符串\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);
}
最新资讯
- 备考资料:2024年自考《英语二》阅读判断模拟试题2024-04-05
- 2024年4月自学考试《马克思主义基本原理概论》模拟题——简答题2024-03-23
- 2024年4月自学考试《马克思主义基本原理概论》模拟题——论述题2024-03-21
- 2021年10月自考《思修》考前2天冲刺卷2021-10-14
- 2021年10月自考《马克思主义基本原理概论》考前2天冲刺卷!2021-10-14
- 2021年10月自考《中国近现代史纲要》模拟题(五)2021-08-01
- 2021年10月自考《中国近现代史纲要》模拟题(四)2021-07-31
- 2021年10月自考《中国近现代史纲要》模拟题(六)2021-07-30
- 2021年10月自考《中国近现代史纲要》模拟题(三)2021-07-30
- 2021年10月自考《中国近现代史纲要》模拟题(二)2021-07-29