定义并初始化一个5行5列的整形数组a,计算并输出每行元素的平均值和平均值最大的行号。
#include <stdio.h>
void main()
{
int a[5][5];
int i,j,tag;
float ave[5];
tag=0;
printf("请输入数组的值,以回车结束\n");
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("您输入的数组为:\n");
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
for(i=0;i<=4;i++)
{ ave[i]=0;
for(j=0;j<=4;j++)
{
ave[i]+=a[i][j];
}
ave[i]=ave[i]/5.0;
}
for(i=0;i<=4;i++)
{
printf("第%d行的平均值为: %f",i+1,ave[i]);
printf("\n");
}
for(i=tag+1;i<=4;i++)
if(ave[i]>ave[tag])
tag=i;
printf("平均值最大的行号是:%d\n",tag+1);
}
最大最小也顺便帮你求了
#include <iostream>
#include <vector>
#include <algorithm>
#include <stdio.h>
using namespace std;
int main()
{
vector<double> v;
int a[5][5]={<!-- -->{1,2,4,4,5},{1,3,5,7,9},{2,4,6,8,10},{6,7,8,9,10},{1,4,7,10,14}};//定义数组
int sum=0;//用于存每一数组行的和
int min;//最小值
int max;//最大值
for(int i=0;i<5;i++)
{
max = a[i][0];//假令最大值是第一个,以后都和它比,有比它大的就和它换值,它这里存的是一行中最大的
min = a[i][0];//最小值
for(int j=0;j<5;j++)
{
sum = sum+a[i][j];//计算和
if(a[i][j]>max)
{
max = a[i][j];
}//比较求大的
if(a[i][j]<min)
{
min = a[i][j];
}//比较求小的
}
printf("第%d行 最大值%d 最小值%d 平均值%d.%d\n",i+1,max,min,sum/5,sum%5*2);//平均值是由两部分组成的,一部分是和除5,一部分是和模5的余数,
//而余数的小数表示就是余数乘2(5是乘2,10是乘1,……)
v.push_back(sum/5+sum%5*2*0.1);
sum=0;//将和清空,留着一会计算下一行
}
auto maxPosition = max_element(v.begin(), v.end());
cout <<"最大值"<< *maxPosition << " 在第 " << maxPosition - v.begin()+1 <<"行"<<endl;
return 0;
}