题目来源:CSDN问答
(1)输入一个3×4二维数组
(2)通过调用函数,将数组的每行平均数计算输出,
(3)将行平均数放在最后一列,将列平均数放在最后一行(注:最后一行最后一列没有数据不输出)
#include <stdio.h>
void SuZu(float a[][4])
{
printf("初始数组为:\n");
for(int i=0;i<3;i++)
{for(int j=0;j<4;j++)
printf("%.1f\t",a[i][j]);
printf("\n");
}
float ra1=0,ra2=0,ra3=0,la1=0,la2=0,la3=0,la4=0;
float b[4][5]={0};
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
switch(i)
{
case 0:ra1+=a[i][j]/4;b[0][4]=ra1;break;
case 1:ra2+=a[i][j]/4;b[1][4]=ra2;break;
case 2:ra3+=a[i][j]/4;b[2][4]=ra3;break;
default:break;
}
switch(j)
{
case 0:la1+=a[i][j]/3;b[3][0]=la1;break;
case 1:la2+=a[i][j]/3;b[3][1]=la2;break;
case 2:la3+=a[i][j]/3;b[3][2]=la3;break;
case 3:la4+=a[i][j]/3;b[3][3]=la4;break;
default:break;
}
b[i][j]=a[i][j];
}
}
printf("第一行平均值为:%.1f\n",ra1);
printf("第二行平均值为:%.1f\n",ra2);
printf("第三行平均值为:%.1f\n",ra3);
printf("第一列平均值为:%.1f\n",la1);
printf("第二列平均值为:%.1f\n",la2);
printf("第三列平均值为:%.1f\n",la3);
printf("第四列平均值为:%.1f\n",la4);
printf("变化数组为:\n");
for(int i=0;i<4;i++)
{for(int j=0;j<5;j++)
if(i==3&&j==4) break;
else printf("%.1f\t",b[i][j]);
printf("\n");
}
}
void main()
{
float a[3][4]={0};
printf("请输入3行4列:\n");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j< 4; j++)
{
scanf("%f",&a[i][j]);
}
}
SuZu(a);
}
输入内容:
1 2 3 4
5 6 7 8
9 10 11 12
输出结果: