} main( ) { void char a[N];
printf ( \ printf ( \ fun ( a ); printf(\
printf ( \ puts ( a ); }
30、请编写函数fun,其功能是:将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a指向存放得分的数组,形参n中存放得分个数(n>2)。
例如,若输入9.9 8.5 7.6 8.5 9.3 9.5 8.9 7.8 8.6 8.4十个得分,则输出结果为:8.687500。
注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include void
double fun(double a[ ] , int n)
{
double fun(double a[ ] , int n) {double t,r,sum; int i,j; for(i=0;i<9;i++) for(j=i+1;j<10;j++)
if(a[i]>a[j])
{ t=a[i];a[i]=a[j];a[j]=t;}
sum=a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]; r=sum/8.0; return r;
} main()
{ double b[10], r; int i;
printf(\输入10个分数放入b数组中 : \ for (i=0; i<10; i++) scanf(\ printf(\输入的10个分数是 : \
for (i=0; i<10; i++) printf(\ r = fun(b, 10);
printf(\去掉最高分和最低分后的平均分 : %f\\n\ }
31、请编写函数fun, 函数的功能是:实现B=A+A', 即把矩阵A加上A的转置, 存放在矩阵B中。计算结果在 main 函数中输出。例如,输入下面的矩阵: 其转置矩阵为: 1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9 程序输出: 2 6 10 6 10 14
10 14 18
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include
void fun ( int a[3][3], int b[3][3])
{ int i,j;
for(i=0;i<3;i++) for(j=0;j<3;j++) b[i][j]=0; for(i=0;i<3;i++) for(j=0;j<3;j++) b[i][j]=a[i][j]+a[j][i];
}
main( ) /* 主程序 */
{ int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}, t[3][3] ; int i, j ; void fun(a, t) ;
for (i = 0 ; i < 3 ; i++) { for (j = 0 ; j < 3 ; j++) printf(\ printf(\
} }
32、请编写函数fun,函数的功能是查找x在s所指数组中下标的位置作为函数值返回,若x不存在,则返回-1。
注意:部分源程序存在PROG1.C中,请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include #define N 15 void
int fun( int *s, int x)
{ int i; for(i=0;i if(s[i]==x) return i; return -1;
} main()
{ int a[N]={ 29,13,5,22,10,9,3,18,22,25,14,15,2,7,27},i,x,index; printf(\数组中的数据 :\\n\ for(i=0; i
printf(\给x输入待查找的数 : \ index=fun( a, x );
printf(\
}
33、编写程序, 实现矩阵(3行3列)的转置(即行列互换) 例如, 输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include
void fun(int array[3][3])
{ int i,j,t;
for(i=0;i<3;i++) for(j=0;j {
t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t;
}