有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号?要用C++编

老师的提示int a【3】【4】,max,i,j;
scanf()max=a【0】【0】 if(a【i】【j】>max) 输出max=a【i】【j】
求救 谢谢了

你们还真行,很简单的逻辑啊。
#include<iostream>
using namespace std;
int main()
{
int a[3][4],max,i,j;
int row=0,column=0;
cout<<"请输入矩阵的数值!"<<endl;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(max<a[i][j])
{
max=a[i][j];
row=i;
column=j;
}
cout<<"矩阵中最大的元素为:"<<max<<endl;
cout<<“行号为:"<<row<<",列号为:"<<column<<endl;
system("pause");
}追问

:"<<row<<",:和"<<column<<endl;是什么意思啊?看不懂啊,我们是刚刚开始学的
能用上scanf函数吗?要弹出黑框框后自己输入数据的那种

追答

你不是说用C++写吗?这就是C++输出流的写法啊,用scanf也是可以,不过scanf是输入,也就是输入矩阵的时候用,输出可以用printf或者cout.下面是C语言版的:
#include"stdio.h"
int main()
{
int a[3][4],max,i,j;
int row=0,column=0;
printf("请输入矩阵的数值!\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(max<a[i][j])
{
max=a[i][j];
row=i;
column=j;
}
printf("矩阵中最大的元素为:%d\n",max);
printf("行号为:%d,列号为:%d",row,column);
}

追问

就是用scanf和printf啊,我分不清C++和C语言啊,我们学的是C语言,一直以为C++就是C语言,用scanf和printf这个就是我们学的拉

追答

呵呵,scanf和printf是C语言的,C++也支持,好好多巩固基础知识咯,这个程序的逻辑很简单的,遍历数组就能得出最大值,同时把下标都保存起来就达到题意了

追问

row和column这两个不知道啊 我正在实验

追答

这两个只是变量而已,变量的名称,因为你说是要知道行号和列号,那我就定义了行变量row、列变量column,你不会不知道这两个单词的意思吧?变量名称只要是合法的标识符就行了,怎么定义都是看自己的,一般都是定义一些单词之类的,能一眼看过去就知道是什么意思,这是一种代码规范和编程习惯

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-22
#include <iostream>
using namespace std;

void main()
{
int a[3][4],i,j;
int max,maxi,maxj;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
max=a[0][0];
i=j=0;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
if(max<a[i][j])
{
max=a[i][j];
maxi=i;
maxj=j;
}
}
cout<<"max:"<<max<<endl<<maxi<<","<<maxj<<endl;
}追问

这个太复杂了,我们初学者啊,能用scanf输入吗?还有后面的cout<<"max:"<<max<<endl<<maxi<<","<<maxj<<endl;
表示从来没有看过 行的话分就都给你了

追答

你都说了是C++,我当然写的C++代码啊

追问

是C语言,一直以为C++就是C语言,用的scanf和printf编,rum和column

第2个回答  2011-11-22
这个难,我不会啊,我刚学呢
相似回答