C++二维数组最值问题
有一个5行5列的二维数组,要用编程实现求出其中最大的最大最小值还要显示它对应的行列位置求出对角线的值高手们,尽量用最简单的表示,我是刚学C++的新手,在线等啊,明天就要自...
有一个5行5列的二维数组,要用编程实现
求出其中最大的最大 最小值 还要显示它对应的行列位置
求出对角线的值
高手们,尽量用最简单的表示,我是刚学C++的新手,在线等啊,明天就要自己上机编了,已经折磨了我几个小时,还没出来.
你们编的我都在机子上实验了,都有错.一个.可不可以帮我找一个下啊.每个程序里都是一个错.崩溃啊. 展开
求出其中最大的最大 最小值 还要显示它对应的行列位置
求出对角线的值
高手们,尽量用最简单的表示,我是刚学C++的新手,在线等啊,明天就要自己上机编了,已经折磨了我几个小时,还没出来.
你们编的我都在机子上实验了,都有错.一个.可不可以帮我找一个下啊.每个程序里都是一个错.崩溃啊. 展开
4个回答
展开全部
修改了一下,调试通过,你再看一下
#include<iostream.h>
class node
{
public:
int number;
int x;
int y;
};
void main()
{
int a[5][5];
node max,min;
int flag=0;
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
cout<<"输入第"<<i+1<<"行"<<"第"<<j+1<<"列元素:";
cin>>a[i][j];
if(flag<1)
{
max.number=min.number=a[0][0];
max.x=max.y=min.x=min.y=0;
flag++;
}
if(a[i][j]>max.number)
{max.number=a[i][j];max.x=i;max.y=j;}
if(a[i][j]<min.number)
{min.number=a[i][j];min.x=i;min.y=j;}
}
}
cout<<"最大数为:"<<max.number<<" "<<"行列位置为:"<<max.x<<" "<<max.y<<endl;
cout<<"最小数为:"<<min.number<<" "<<"行列位置为:"<<min.x<<" "<<min.y<<endl;
int sum1,sum2;
sum1=sum2=0;
for(int k=0;k<5;k++)
{
sum1=a[k][k]+sum1;
}
for(int j=0;j<5;j++)
{
sum2=a[j][4-j]+sum2;
}
cout<<"对角线和为:"<<sum1<<" "<<sum2<<endl;
}
#include<iostream.h>
class node
{
public:
int number;
int x;
int y;
};
void main()
{
int a[5][5];
node max,min;
int flag=0;
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
cout<<"输入第"<<i+1<<"行"<<"第"<<j+1<<"列元素:";
cin>>a[i][j];
if(flag<1)
{
max.number=min.number=a[0][0];
max.x=max.y=min.x=min.y=0;
flag++;
}
if(a[i][j]>max.number)
{max.number=a[i][j];max.x=i;max.y=j;}
if(a[i][j]<min.number)
{min.number=a[i][j];min.x=i;min.y=j;}
}
}
cout<<"最大数为:"<<max.number<<" "<<"行列位置为:"<<max.x<<" "<<max.y<<endl;
cout<<"最小数为:"<<min.number<<" "<<"行列位置为:"<<min.x<<" "<<min.y<<endl;
int sum1,sum2;
sum1=sum2=0;
for(int k=0;k<5;k++)
{
sum1=a[k][k]+sum1;
}
for(int j=0;j<5;j++)
{
sum2=a[j][4-j]+sum2;
}
cout<<"对角线和为:"<<sum1<<" "<<sum2<<endl;
}
展开全部
定义a[5][5];
假设max=min=a[0][0];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(max<a[i][j])
{max=a[i][j];
用两个变量储存i,j位置;}
if(min>a[i][j])
{min=a[i][j];
用两个变量储存i,j文职;}
}
}
输出max及对应i,j;min及对应i j;
int total=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(i==j||i==4-j)
total+=a[i][j];
输出total;
想抄答案吗
假设max=min=a[0][0];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(max<a[i][j])
{max=a[i][j];
用两个变量储存i,j位置;}
if(min>a[i][j])
{min=a[i][j];
用两个变量储存i,j文职;}
}
}
输出max及对应i,j;min及对应i j;
int total=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(i==j||i==4-j)
total+=a[i][j];
输出total;
想抄答案吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
15分钟之后标准答案(完整程序)到来,敬请期待。
-----
久等了,标准的答案来了。
/*
有一个5行5列的二维数组,要用编程实现
求出其中最大的最大 最小值 还要显示它对应的行列位置
求出对角线的值
*/
#include<iostream>
using namespace std;
int main(void)
{
int array[5][5];
//由于没有源文件,所以采取输入的方式
for(int i=0;i<5;i++) //先循环行
{
for(int j=0;j<5;j++) //再列
{
//注意,没有进行输入正确性检查,请输入正确
cout<<"请输入第"<<i<<"行第"<<j<<"列的元素array["<<i<<"]["<<j<<"]:";
cin>>array[i][j];
}
}
//好了,求最大值和最小值
int max = array[0][0];
int min = array[0][0];
//存储最大值的位置
int maxi = 0;
int maxj = 0;
//存储最小值的位置
int mini = 0;
int minj = 0;
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if( max < array[i][j] )
{
max = array[i][j];
maxi = i;
maxj = j;
}
if( min > array[i][j] )
{
min = array[i][j];
mini = i;
minj = j;
}
}
}
cout<<"你输入的最大元素是array["<<maxi<<"]["<<maxj<<"] = "<<max<<endl;
cout<<"你输入的最小元素是array["<<mini<<"]["<<minj<<"] = "<<min<<endl;
//对角线和??
int sum = 0;
for(int i=0;i<5;i++)
{
sum = sum + array[i][i];
}
cout<<"正对角线的和是:"<<sum<<endl;
return 0;
}
//努力啊,下次这样的程序可没人给你写了。
//84638372 QQ联系。
-----
久等了,标准的答案来了。
/*
有一个5行5列的二维数组,要用编程实现
求出其中最大的最大 最小值 还要显示它对应的行列位置
求出对角线的值
*/
#include<iostream>
using namespace std;
int main(void)
{
int array[5][5];
//由于没有源文件,所以采取输入的方式
for(int i=0;i<5;i++) //先循环行
{
for(int j=0;j<5;j++) //再列
{
//注意,没有进行输入正确性检查,请输入正确
cout<<"请输入第"<<i<<"行第"<<j<<"列的元素array["<<i<<"]["<<j<<"]:";
cin>>array[i][j];
}
}
//好了,求最大值和最小值
int max = array[0][0];
int min = array[0][0];
//存储最大值的位置
int maxi = 0;
int maxj = 0;
//存储最小值的位置
int mini = 0;
int minj = 0;
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if( max < array[i][j] )
{
max = array[i][j];
maxi = i;
maxj = j;
}
if( min > array[i][j] )
{
min = array[i][j];
mini = i;
minj = j;
}
}
}
cout<<"你输入的最大元素是array["<<maxi<<"]["<<maxj<<"] = "<<max<<endl;
cout<<"你输入的最小元素是array["<<mini<<"]["<<minj<<"] = "<<min<<endl;
//对角线和??
int sum = 0;
for(int i=0;i<5;i++)
{
sum = sum + array[i][i];
}
cout<<"正对角线的和是:"<<sum<<endl;
return 0;
}
//努力啊,下次这样的程序可没人给你写了。
//84638372 QQ联系。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int i,j,min,max,a[5][5],minx,miny,maxx,maxy,sum1,sum2;
printf("输入5*5的数组:\n");
for(i=0;i<5;i++){
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
}
min=a[0][0];
max=a[0][0];
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
if(a[i][j]>=max)//如果a[i][j]比当前最大值大
{
max=a[i][j];
maxx=i;
maxy=j;
}
if(a[i][j]<=max)//如果a[i][j]比当前最小值小
{
min=a[i][j];
minx=i;
miny=j;
}
}
printf("最大值为:%d,位置为:%d,%d\n",max,maxx,maxy);
printf("最小值为:%d,位置为:%d,%d\n",min,minx,miny);
sum1=0;sum2=0;
for(i=0;i<5;i++)
{
sum1+=a[i][i];
sum2+=a[i][5-i];
}
printf("两条对角线和为%d %d\n",sum1,sum2);
}
void main()
{
int i,j,min,max,a[5][5],minx,miny,maxx,maxy,sum1,sum2;
printf("输入5*5的数组:\n");
for(i=0;i<5;i++){
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
}
min=a[0][0];
max=a[0][0];
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
if(a[i][j]>=max)//如果a[i][j]比当前最大值大
{
max=a[i][j];
maxx=i;
maxy=j;
}
if(a[i][j]<=max)//如果a[i][j]比当前最小值小
{
min=a[i][j];
minx=i;
miny=j;
}
}
printf("最大值为:%d,位置为:%d,%d\n",max,maxx,maxy);
printf("最小值为:%d,位置为:%d,%d\n",min,minx,miny);
sum1=0;sum2=0;
for(i=0;i<5;i++)
{
sum1+=a[i][i];
sum2+=a[i][5-i];
}
printf("两条对角线和为%d %d\n",sum1,sum2);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询