第1个回答 2015-04-14
现在是正确的,编译通过后没看答案,没想到错误了。现在是正确的
#include <iostream>
using namespace std;
void test(double a[3][4])
{
int i,j;
double k;
double(*b)[4] ;
b=a;//随便赋值的,给个处置保证不出问题
for(i=0;i<3;i++)
{
k=a[i][0];
//通过for循环找到最大值
for(j=0;j<4;j++)
{
if(k<a[i][j])
{
k=a[i][j];//k记录最大值
}
}
//将最大值与第一列的元素除
for(j=0;j<4;j++)
*(*(b+i)+j)=a[i][j]/k;//k记录最大值
}
//输出数组,用以验证程序结果
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
cout<<*(*(b+i)+j)<<" ";
cout<<endl;
}
}
void main()
{
int i,j;
double a[3][4]={1,2,3,4,
5,6,7,8,9,
10,11,12};
//嫌每次输入麻烦,故选择上面的语句
/* for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
cin>>a[i][j];
} */
for(i=0;i<3;++i)
{
for(j=0;j<4;++j)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
test(a);
}
基本正确,VC6.0调试。单位管理的严,代码传不上去,手敲。要是缺个分号,括号什么的,自己补足本回答被网友采纳