VC++调用函数,怎么老是出错 syntax error : ']' 到底是哪里错了,错的地方怎么改,求解答(题目有要求)
2.求3行4列二维数组的和、平均值、最大值和最小值及其所在的位置。用函数实现,具体要求如下:(1)主函数实现:定义数组b、按要求输入和输出数组元素,调用相关函数求数组元素...
2.求3行4列二维数组的和、平均值、最大值和最小值及其所在的位置。用函数实现,具体要求如下:
(1)主函数实现:定义数组b、按要求输入和输出数组元素,调用相关函数求数组元素的和、平均值、最大值和最小值及其下标;
(2)int f1(int a[][4],int &sum ):求a数组的和sum,返回a的平均值;
(3)void f2(int a[][4],int &max,int&maxi, int &maxj,int &min,int &mini, int &minj ):求a数组的最大值max和最小值min及其下标(maxi、maxj、mini和minj);
输出示例:
数组为:
105200
35-3402
2512233
和:172,平均值:14
最大值:40,是第1行第2列元素
最小值:-3,是第1行第1列元素
#include<iostream.h>
int f1(int a[][4],int &sum)
{
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
sum+=a[i][j];
}
return sum/12;
}
void f2(int a[][4],int& max,int& maxi,int& maxj,int& min,int& mini,int& minj)
{
for(int i=0;i<3;i++)//最值
{
for(int j=0;j<4;j++)
{
if(max<=a[i][j])
{
max=a[i][j];maxi=i;maxj=j;
}
if(min>=a[i][j])
{
min=a[i][j];mini=i;minj=j;
}
}
}
cout<<"最大值:"<<max<<','<<"是第"<<maxi<<"行第"<<maxj<<"列元素\n";
cout<<"最小值:"<<min<<','<<"是第"<<mini<<"行第"<<minj<<"列元素\n";
}
void main()
{
int a[3][4];
for(int i=0;i<3;i++)//输入数组
{
for(int j=0;j<4;j++)
cin>>a[i][j];
}
int max=a[0][0],maxi,maxj,min=a[0][0],mini,minj;float sum=0;
cout<<"数组为:";
for(i=0;i<3;i++)//输出数组
{
for(int j=0;j<4;j++)
{
cout<<a[i][j]<<'\t';
if(j==3)cout<<endl<<'\t';
}
}
f1(a[][4],sum);
cout<<"和:"<<sum<<','<<"平均值:"<<f1(a[][4],sum)<<endl;
f2(a[][4],max,maxi,maxj,min,mini,minj);
} 展开
(1)主函数实现:定义数组b、按要求输入和输出数组元素,调用相关函数求数组元素的和、平均值、最大值和最小值及其下标;
(2)int f1(int a[][4],int &sum ):求a数组的和sum,返回a的平均值;
(3)void f2(int a[][4],int &max,int&maxi, int &maxj,int &min,int &mini, int &minj ):求a数组的最大值max和最小值min及其下标(maxi、maxj、mini和minj);
输出示例:
数组为:
105200
35-3402
2512233
和:172,平均值:14
最大值:40,是第1行第2列元素
最小值:-3,是第1行第1列元素
#include<iostream.h>
int f1(int a[][4],int &sum)
{
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
sum+=a[i][j];
}
return sum/12;
}
void f2(int a[][4],int& max,int& maxi,int& maxj,int& min,int& mini,int& minj)
{
for(int i=0;i<3;i++)//最值
{
for(int j=0;j<4;j++)
{
if(max<=a[i][j])
{
max=a[i][j];maxi=i;maxj=j;
}
if(min>=a[i][j])
{
min=a[i][j];mini=i;minj=j;
}
}
}
cout<<"最大值:"<<max<<','<<"是第"<<maxi<<"行第"<<maxj<<"列元素\n";
cout<<"最小值:"<<min<<','<<"是第"<<mini<<"行第"<<minj<<"列元素\n";
}
void main()
{
int a[3][4];
for(int i=0;i<3;i++)//输入数组
{
for(int j=0;j<4;j++)
cin>>a[i][j];
}
int max=a[0][0],maxi,maxj,min=a[0][0],mini,minj;float sum=0;
cout<<"数组为:";
for(i=0;i<3;i++)//输出数组
{
for(int j=0;j<4;j++)
{
cout<<a[i][j]<<'\t';
if(j==3)cout<<endl<<'\t';
}
}
f1(a[][4],sum);
cout<<"和:"<<sum<<','<<"平均值:"<<f1(a[][4],sum)<<endl;
f2(a[][4],max,maxi,maxj,min,mini,minj);
} 展开
1个回答
展开全部
int f1(int a[][4],int& sum)
{
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
sum+=a[i][j];
}
return sum/12;
}
void main()
{
int a[3][4];
for(int i=0;i<3;i++)//输入数组
{
for(int j=0;j<4;j++)
cin>>a[i][j];
}
int max=a[0][0],maxi =0,maxj =0,min=a[0][0],mini =0,minj=0;int sum=0;//要将数据初始化一下
cout<<"数组为:";
for(int i=0;i<3;i++)//输出数组
{
for(int j=0;j<4;j++)
{
cout<<a[i][j]<<'\t';
if(j==3)cout<<endl<<'\t';
}
}
int avg = f1(a,sum);//f1的函数签名是要传一个二位数组指针
cout<<"和:"<<sum<<','<<"平均值:"<<avg<<endl;
f2(a,max,maxi,maxj,min,mini,minj);
}
{
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
sum+=a[i][j];
}
return sum/12;
}
void main()
{
int a[3][4];
for(int i=0;i<3;i++)//输入数组
{
for(int j=0;j<4;j++)
cin>>a[i][j];
}
int max=a[0][0],maxi =0,maxj =0,min=a[0][0],mini =0,minj=0;int sum=0;//要将数据初始化一下
cout<<"数组为:";
for(int i=0;i<3;i++)//输出数组
{
for(int j=0;j<4;j++)
{
cout<<a[i][j]<<'\t';
if(j==3)cout<<endl<<'\t';
}
}
int avg = f1(a,sum);//f1的函数签名是要传一个二位数组指针
cout<<"和:"<<sum<<','<<"平均值:"<<avg<<endl;
f2(a,max,maxi,maxj,min,mini,minj);
}
追问
为什么平均值的精确度又不对了
追答
因为int f1(int a[][4],int &sum ): 这个函数签名限制的,只能返回一个int类型,只能是返回一个整数,就会导致精确度只能精确到个位, 如果是float f1(int a[][4],int &sum ): 才能精确到小数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询