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