输入一个二维数组,求每行的平均值。。。C语言要怎么写?

不能用指针。。。就用循环完成。。。100分求解。。。。
2024-11-22 20:35:12
推荐回答(5个)
回答1:

如果用指针还可以做成动态数组,不用的话只能固定开辟。另外程序没判断数组越界,不要输入超过MAXCOL和MAXROW的列和行数。

#include
#define MAXROW 200
#define MAXCOL 200
int main(void)
{
printf("type row and col,split with\" \":");
int row,col;
scanf("%d%d",&row,&col);
int matrix[MAXROW][MAXCOL];
float avg[MAXROW];
int curRow,curCol;
for(curRow=0;curRow {
float sum=0;
for(curCol=0;curCol {
int data;
printf("enter r%2dc%2d:",curRow+1,curCol+1);
scanf("%d",&data);
matrix[curRow][curCol]=data;
sum+=data;
}
avg[curRow]=sum/curCol;
}
printf("outputs:\n");
for(curRow=0;curRow {
for(curCol=0;curCol {
printf(" %d",matrix[curRow][curCol]);
}
printf(" avg:%.2g\n",avg[curRow]);
}
return 0;
}

回答2:

#include "stdio.h"
main()
{ int i,j,a[5][5];
float sum,aver;
printf("enter the grade.\n");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(i=0;i<5;i++)
{ sum=0; aver=0;
for(j=0;j<5;j++)
sum=a[i][j]+sum;
aver=sum/5;
printf("the %i aver grade is %f\n",i,aver); }
getch();
}

想要改数组元素个数的话 只要把5改成其余数就好了

回答3:

#include

/*--数组行列定义--*/

/*二维数组的行*/
#define M 3
/*二位数组的列*/
#define N 3

int main(void)
{
int row = 0, col = 0;
float array[M][N] = {0}, avg[M] = {0};
/*--输入数组部分--*/
printf("Please Input the array of data: \n");
for(row = 0; row < M ; row ++)
{
for(col = 0; col < N; col++)
{
scanf("%f",&array[row][col]);
}
}

/*--计算数组每行平均值,存放在avg数组中--*/
printf("Cumulate the average of the array of each row: \n");

for(row = 0; row < M; row++)
{
for(col = 0; col < N; col++)
{
/*--累加每行的值--*/
avg[row] += array[row][col];
}
/*--每行的值除以每行的元素个数得到平均值--*/
avg[row] /= N;
}

/*--输出数组每行的平均值--*/
printf("OutPut the average of the array of each row :\n\t");

for(col = 0 ; col < N; col++)
{
printf("%d\t",(col+1));
}
printf("avg\n");

printf("------------------------------------------------\n");

for(row = 0; row < M ; row ++)
{
printf("%d\t",(row +1));
for(col = 0; col < N; col++)
{
printf("%.2f\t",array[row][col]);
}
printf("%.2f\n",avg[row]);
}
printf("------------------------------------------------\n");

return 1;
}

回答4:

我在宏定义处规定的行列,你可以自己改成你想要的多少行多少列
#include
#define ROW 2
#define COL 2
void row(int junk[][COL],int row);
void main()
{
int sum_r,sum_c;
int r,c;
int junk[ROW][COL];
printf("为%dX%d矩阵输入%d个数:\n",ROW,COL,ROW*COL);
for(r=0;r for(c=0;c {
scanf("%d",&junk[r][c]);
}
row(junk,ROW);

}
void row(int junk[][COL],int row)
{
int sum=0;
int r,c;
for(r=0;r {
for(c=0;c {
sum+=junk[r][c];
printf("%4d ",junk[r][c]);
}
printf("%3f ",(double)sum/4);
sum=0;
printf("\n");
}

}

回答5:

printf("%3f ",(double)sum/4);
sum=0;