//从键盘输入一个NⅩN的整型数组,并将每一行的最大值显示输出,并显示是第几个元素。

#include<iostream.h>
#define N 2
void main()
{
int i,j,a[N][N],num[N][N];
cout<<"请输入一个数组:"<<endl;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
cin>>a[i][j];
for(i=0;i<N;i++)
for(j=0;j<N-1;j++)
if(a[i][j]>a[i][j+1])
num[i][j]=a[i][j];
else
num[i][j]=a[i][j+1];
for(i=0;i<N;i++)
for(j=1;j<N;j++)
cout<<"第"<<i+1<<"行第"<<j+1<<"个元素是最大值:"<<num[i][j]<<endl;
}
帮帮我看下这个程序哪出错了?

第1个回答  2011-04-01
ostream.h>
#define n 10
void main()
{int i,j,a[n],b[n];/*定义数组大小为5*/
cout<<"input "<<n<<" number:";
for(i=0;i<n;i++)
cin>>a[i];
for(int k=0;k<n;k++)
b[k]=a[k];
for(i=0;i<n-1;i++)
{for(j=i+1;j<n;j++)
if(a[i]>a[j])
{int t=a[i];
a[i]=a[j];
a[j]=t;
}}
for(i=0;i<n;i++)
if(a[n-1]==b[i])
cout<<"最大的数为"<<a[n-1]<<",在数组中的位置为"<<i+1<<endl;
}
另外,团IDC网上有许多产品团购,便宜有口碑
第2个回答  2011-03-28
#include<iostream.h>
#define N 2
void main()
{
int i,j,a[N][N],num;//最大值是一个数,不是数组。
cout<<"请输入一个数组:"<<endl;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
cin>>a[i][j];
for(i=0;i<N;i++)
for(j=0;j<N-1;j++)
if(a[i][j]>a[i][j+1])
num=a[i][j];
else
num=a[i][j+1];
//for(i=0;i<N;i++)
//for(j=1;j<N;j++)
cout<<"第"<<i+1<<"行第"<<j+1<<"个元素是最大值:"<<num<<endl;
}追问

你这样改运行的结果还是错的啊,怎么有到第3行了?我感觉还是最后那一行j+1出问题了,但是又不知道是怎么回事

追答

的确出错了,你应该用两个变量把行数和列数记下来,因为for循环会继续循环下去,i,j的值会改变。
你可以这样写
#include
#define N 2
void main()
{
int i,j,k,l,a[N][N],num;//最大值是一个数,不是数组。
cout>a[i][j];
num=a[0][0];
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(num<a[i][j])
num=a[i][j],k=i,l=j;

cout<<"第"<<k+1<<"行第"<<l+1<<"个元素是最大值:"<<num<<endl;
}

本回答被提问者和网友采纳
第3个回答  2011-03-28
每一行的最大值你有必要用一个同等大小的矩阵来存储吗?肯定出错。
用一个num[N]的向量就对了。
还有,要用num[i] 和a[ ][ ]比较才能知道最大值。