自考“高級(jí)語言程序設(shè)計(jì)”習(xí)題答案詳解(21)

字號(hào):

4.編程序按下列公式計(jì)算S的值(其中X1、X2、…、Xn由鍵盤輸入):
    s=∑(xi-x0)(xi-x0) (其中x0是X1、x2、…、Xn的平均值)
    「解」輸入數(shù)組x的n個(gè)元素的值,按公式計(jì)算。程序首先輸入n,設(shè)n<100,然后輸入n個(gè)數(shù)據(jù),接著求它們的平均值,最后按計(jì)算公式求出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.輸入一個(gè)3X5的整數(shù)矩陣,輸出其中值、最小值和它們的下標(biāo)。
    「解」輸入一個(gè)二維數(shù)組,尋找二維數(shù)組的值和最小值。其中尋找值和最小值的工作可用兩重循環(huán)實(shí)現(xiàn),即按行按列考察二維數(shù)組的元素。程序如下:
    # 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    for( j=0;j    scanf(“%d”, &t); a[j]= t;
    }
    min=max=a[[0][0]; minrow=mincol=maxrow=maxcol=0;
    for(i=0;i    for(j=0;j    if( a[j]> max ){
    max= a[j] ;maxrow= i;maxcol=j ;
    }
    if( a[j]    min=a[j] ; minrow= i; mincol=j(luò) ;
    }
    }
    printf(“MAX=a[%d][%d] =%d MIN= a[%d][%d] =%d \n”,
    maxrow,maxcol,max,minrow,mincol,min) ;
    }