学历改变命运
24小时客服:4008135555/010-82335555
当前位置:首页 > 笔记串讲 > 自考“高级语言程序设计”习题答案详解(31

自考“高级语言程序设计”习题答案详解(31)

2007年09月04日    来源:   字体:   打印

  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);

  }

关闭