cqupt 题库
按如下函数原型编程从键盘输入一个m行n列的二维整型数组,然后计算二维数组中正数的总和与均值。其中m和n的值由用户键盘输入。已知m和n的值都不超过10。输入二维数组的函数原型如下:
void InputArray(int a[][N],int m,int n);
计算二维数组正数的均值与总和的函数原型如下:
void CalSumAndMeang(int a[][N],int m,int n, int *sum, float mean);
程序运行结果示例:
Input size of 2-D array m,n:
3,3↙
Input elements of 33 array:
2 5 7
9 0 2
3 -4 9
sum=37, mean=5.29
输入格式:
输入数组大小:"%d,%d"
输入数组元素:"%d"
输出格式:
数组大小输入提示信息:“Input size of 2-D array m,n:\n”
数组元素输入提示信息:“Input elements of %d*%d array:\n”
输出格式:“sum=%d, mean=%f\n”
请按如下框架编程,在“…”的位置添加缺失的语句,使程序完整。
#include
#define N 10
void InputArray(int a[][N], int m, int n);
void CalSumAndMean(int a[][N], int m, int n, int *sum, float mean);
/从键盘输入一个m行n列的二维数组/
void InputArray(int a[][N], int m, int n)
{
int i, j;
printf("Input elements of %d%d array:\n", m, n);
for (i = 0; i < m; i++)
{
…
{
…
}
}
}
int main()
{
int m, n, iSum;//iSum用于保存二维数组a中正数的总和
float fMean; //fMean用于保存二维数组a中正数的均值
int a[N][N];
printf("Input size of 2-D array m,n:\n");
scanf("%d,%d", &m, &n);
InputArray(............);
CalSumAndMean(.............);
printf("sum=%d, mean=%.2f\n", iSum, fMean);
return 0;
}
/*功能:计算m行n列的二维数组a中正数的总和与均值
参数:int *sum 用于接收二维数组a中正数的总和
float *mean 用于接收二维数组a中正数的均值
*/
void CalSumAndMean(int a[][N], int m, int n, int *sum, float *mean)
{
int i, j,count;
count = 0;
............
return ;
}
#include
#define N 10
void InputArray(int a[][N], int m, int n);
void CalSumAndMean(int a[][N], int m, int n, int *sum, float *mean);
/*从键盘输入一个m行n列的二维数组*/
void InputArray(int a[][N], int m, int n)
{
int i, j;
printf("Input elements of %d*%d array:\n", m, n);
for (i = 0; i < m; i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
}
int main()
{
int m, n, iSum=0 ;//iSum用于保存二维数组a中正数的总和
float fMean=0; //fMean用于保存二维数组a中正数的均值
int a[N][N];
int *sum;
float *mean;
sum=&iSum;
mean=&fMean;
printf("Input size of 2-D array m,n:\n");
scanf("%d,%d", &m, &n);
InputArray( a , m, n);
CalSumAndMean( a , m, n,sum, mean);
printf("sum=%d, mean=%.2f\n",*sum, *mean);
return 0;
}
/*功能:计算m行n列的二维数组a中正数的总和与均值
参数:int *sum 用于接收二维数组a中正数的总和
float *mean 用于接收二维数组a中正数的均值
*/
void CalSumAndMean(int a[][N], int m, int n, int *sum, float *mean)
{
int i, j,count;
count = 0;
for (i = 0; i < m; i++)
{
for(j=0;j<n;j++)
{
if( a[i][j] > 0)
{
*sum=*sum+a[i][j];
count++;
}
}
}
*mean=*sum/(count*1.0);
return ;
}