#include
#include
using namespace std;
int main()
{
int i,j;
float sum(float a[][7],int i);
float ave(float a[][7],int i);
float max(float a[][7],int j);
float a[][7]={{1},{2},{3}};
cout<<"?依次?入?文高?外?政治成?:"<
{
cout<<"?生"< for(j=1;j<5;j++)
cin>>a[i][j];
}
a[0][5]=sum(a,0);
a[1][5]=sum(a,1);
a[2][5]=sum(a,2);
a[0][6]=ave(a,0);
a[1][6]=ave(a,1);
a[2][6]=ave(a,2);
cout<<"??"<
{
for(j=0;j<7;j++)
cout< cout<
cout<
}
float sum(float a[][7],int i)
{
float s=a[i][1]+a[i][2]+a[i][3]+a[i][4];
return s;
}
float ave(float a[][7],int i)
{
float ave,s=a[i][1]+a[i][2]+a[i][3]+a[i][4];
ave=s/4;
return ave;
}
float max(float a[][7],int j)
{
float m=a[0][j];
int i;
for(i=1;j<3;i++)
{
if(a[i][j]>m) m=a[i][j];
}
return m;
}
问题大致都差不多,比如说你在程序开头定义的函数原型float sum(int a[][7],int i);
请把int a[][7]换成float就OK了,ave也一样换成float编译通过,并可以运行。
调试程序很重要的一点就是要看它报出的异常,error C2664: 'sum' : cannot convert parameter 1 from 'float [3][7]' to 'int [][7]'
这就说的很清楚参数转化有问题。顺着查下去就找到错误的所在了。
朋友,我看了一下你的程序,有个很大的问题,那就是你main函数刚开始的地方有这几句申明float sum(int a[][7],int i); float ave(int a[][7],int i);
float max(int a[][7],int j);你后面的函数实现以及中间的函数调用,第一个参数都是float a[][7]这种类型的,你却申明成了int a[0][7]。改改吧,希望你成功
函数调用时出了点问题,因为你sum的参数是传的二维的数组,而c++中二维数组很难传,基本上都要用new出个二维的指针然后在传,否则这样肯定是不行的。