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

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

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

  4.编程序按下列公式计算S的值(其中X1、X2、…、Xn由键盘输入):

  s=∑(xi-x0)(xi-x0) (其中x0是X1、x2、…、Xn的平均值)

  「解」输入数组x的n个元素的值,按公式计算。程序首先输入n,设n<100,然后输入n个数据,接着求它们的平均值,更后按计算公式求出s,并输出。程序如下:

  # include

  # define N 100

  main()

  { double x[N+1], s;

  int i,n;

  do {

  printf(“Enter n(<100)”); scanf(“%d”, &n);

  } while(<=0||n>=100);

  for(i=1; i<=n;i++){

  scanf(“%lf”, &s);x=s;

  }

  for(s=0.0,i=1;i<=n; i++)

  s+=x ;

  x[0] = s/n;

  for(s=0.0, i=1;i<= n;i++)

  s+=(x-x[0])*(x-x[0]);

  printf(“s=%f\n”, s);

  }

  5.输入一个3X5的整数矩阵,输出其中更大值、更小值和它们的下标。

  「解」输入一个二维数组,寻找二维数组的更大值和更小值。其中寻找更大值和更小值的工作可用两重循环实现,即按行按列考察二维数组的元素。程序如下:

  # include

  main()

  { int a[3][5], i,j,t,n=3, m=5,

  min,max, minrow, mincol, maxrow, maxcol;

  printf(“Enter %d*%d numbers !\n” , n,m);

  for(i=0; i<N;I++) )

  for( j=0;j<M;J++){

  scanf(“%d”, &t); a[j]= t;

  }

  min=max=a[[0][0]; minrow=mincol=maxrow=maxcol=0;

  for(i=0;i<N;I++)

  for(j=0;j<M; J++){

  if( a[j]> max ){

  max= a[j] ;maxrow= i;maxcol=j ;

  }

  if( a[j]<MIN) {

  min=a[j] ; minrow= i; mincol=j ;

  }

  }

  printf(“MAX=a[%d][%d] =%d MIN= a[%d][%d] =%d \n”,

  maxrow,maxcol,max,minrow,mincol,min) ;

  }

关闭