int[,] a = new int[3, 4];
int i, j, max, p, k;
bool flag = true, NoExistNaddle = false;
for (i = 0; i <= 2; i++)
for (j = 0; j <= 3; j++)
{
ConsoleWrite("请输入二维数组a[{0},{1}]=", i, j);
a[i, j] = intParse(ConsoleReadLine());
}
for (i = 0; i <= 2; i++)
{
max = a[i, 0]; p = 0;
for (j = 1; j <= 3; j++)
if (max < a[i, j])
{
max = a[i, j];
p = j;
}
else
p = 0;
for (k = 0; k <= 2; k++)
if (max > a[k, p])
{
flag = false;
break;
}
if (flag == true)
{
ConsoleWriteLine(" a[{0},{1}]={2}", i, p, max);
NoExistNaddle = true;
}
}
if (NoExistNaddle == false)
ConsoleWriteLine("no exist");
#include <iostreamh>
#include <iomaniph>
int main()
{
int i,j;
double max,min;
double a[5][4];
cout<<"请输入五行四列二维数组元素:"<<endl;
for (i=0;i<5;i++)
for (j=0;j<4;j++)
cin>>a[i][j];
for (i=0;i<5;i++)
{
for (j=0;j<4;j++)
cout<<setw(8)<<a[i][j];
cout<<endl;
}
for (i=0;i<5;i++)
{
max=a[i][0];
int k=0;
for (j=1;j<4;j++)
{
if (a[i][j]>max)
{
max=a[i][j];
k=j;
}
}
min=a[0][k];
int m=0;
for (j=1;j<5;j++)
{
if (min>a[j][k])
{
min=a[j][k];
m=j;
}
}
if (m==i)
cout<<"鞍点:"<<a[i][k]<<"所在行和列分别为:"<<i+1<<" "<<k+1<<endl;
else
cout<<i+1<<"行无鞍点"<<endl;
}
return 0;
}
我先指出你程序中的错误(我先把你的注释删掉,否则有点乱),最下面是我修改好的程序(我的编译器输出中文时有点问题,所以改成了简单的英文,望见谅)。
#include<stdioh>
int main()
{
int h,l,a[4][4],maxh[4],maxl[4],z[4],n,k;
printf("请输入数组:");
for(h=1;h<=3;h++)
{
for(l=1;l<=3;l++)
{
scanf("%d",a[h][l]);//输入没有取地址符号
}
}
maxh1=a[1][1],maxh2=a[2][1],maxh3=a[3][1];//maxh数组使用错误
for(h=1;h<=3;h++)
{
for(l=1;l<=3;l++)
{
if(a[h][l]>maxh[h])
{
maxh[h]=a[h][l];
z[h]=l;
}
}
}
maxl1=a[1][1],maxl2=a[1][2],maxl3=a[1][3];//maxl数组使用错误
for(l=1;l<=3;l++)
{
for(h=1;h<=3;h++)
{
if(a[h][l]<maxl[h])
maxl[h]=a[h][l];//maxl应该是存储每一列的最小元素,则不应该是maxl[h],而是maxl[l]
}
}
if(maxh1==maxl[z1])//z数组使用错误,应该是z[1],下同
{
printf("第一行有鞍点:%d",maxh1);
}
else
printf("第一行没有鞍点。");
if(maxh2==maxl[z2])
{
printf("第二行有鞍点:%d",maxh2);
}
else
printf("第二行没有鞍点。");
if(maxh3==maxl[z3])
{
printf("第三行有鞍点:%d",maxh3);
}
else
printf("第三行没有鞍点。");
printf("\n");
return 0;
}
//==================================
//这是我修改好的程序
//==================================
#include<stdioh>
int main()
{
int h,l,a[4][4],maxh[4],maxl[4],z[4],n,k;
printf("please enter 33 datas\n");
for(h=1; h<=3; h++)
{
for(l=1; l<=3; l++)
{
scanf("%d", &a[h][l]);
}
}
maxh[1]=a[1][1],maxh[2]=a[2][1],maxh[3]=a[3][1];
for(h=1; h<=3; h++)
{
for(l=1; l<=3; l++)
{
if(a[h][l]>maxh[h])
{
maxh[h]=a[h][l];
z[h]=l;
}
}
}
maxl[1]=a[1][1],maxl[2]=a[1][2],maxl[3]=a[1][3];
for(l=1; l<=3; l++)
{
for(h=1; h<=3; h++)
{
if(a[h][l]<maxl[h])
maxl[l]=a[h][l];
}
}
if(maxh[1]==maxl[z[1]])
{
printf("1 -- %d\n",maxh[1]);
}
else printf("1 no");
if(maxh[2]==maxl[z[2]])
{
printf("2 -- %d\n",maxh[2]);
}
else printf("2 no\n");
if(maxh[3]==maxl[z[3]])
{
printf("3 -- %d\n",maxh[3]);
}
else printf("3 no\n");
printf("\n");
return 0;
}
dim A()as Integer
redim A(m,n)as Integer
'请自己给A数组赋值
dim f as boolean,fmin as boolean,i as integer,j as integer,rmax as integer,rmaxn as integer
f=False
for i=1 to m
rmaxn=1
rmax=A(i,rmaxn)
'找到当前行中最大的数的位置rmaxn
for j=2 to n
if A(i,j)>rmax then
rmax=A(i,j)
rmaxn=j
end if
next
'检查这个数是否是本列中最小的
fmin=true
for j=2 to m
if A(j,rmaxn)<rmax then fmin=false:exit for
next
if fmin then
print "鞍点A("& i &","& rmaxn &")=" & A(i,rmaxn)
f=True
end if
next
if f=False then Print "没有鞍点"
1、首先,定义3个整型变量,保存控制数组元素的变量,以及左侧对角线元素的和、右侧对角线元素的和。
2、接着,给数组赋初值,即输入一个44方阵。
3、设置suml和sumr的初值为0。
4、用for循环控制读入方阵对角线上的各元素,实现对角线上各元素的和。
5、计算左侧对角线和右侧对角线上各元素的和,用累加的方式实现运算。
6、最后,分别输出方阵左侧对角线和右侧对角线上各元素的和。
你这程序有很多问题,比如说你那查找的for循环就有问题;因为我以前没编过,所以我用C++重新帮你编了,你要用void chazhao(int a[][1000],int h,int l)这样才是对的,我用的是动态数组,你看看吧,不懂的HI我。
#include "iostream"
using namespace std;
void chazhao(int a,int h,int l)//查找;
{
int c=0;
int min;
int flag=0;//标志位,1为找到了,0为没找到;
min=a[0][0];
for(int i=0;i<h;i++)
{
for(int j=0;j<l;j++)
{
if(a[i][j]<min)
{
min=a[i][j];
c=j;
}
//找出第i行的最小值; c列;
}
for(j=0;j<h;j++)
{
if(a[j][c]>min) //比较第i行第c列是不是第c列中最大值;
{
flag=0;
break;
}
else flag=1;
}
if(flag==1)//在第i行找到了
{
cout<<"第"<<i<<"马鞍点为a["<<i<<"]["<<c<<"]="<<a[i][c]<<endl;
}
else
{
cout<<"第"<<i<<"行的马鞍点不存在!"<<endl;
}
}
}
void Display(int a,int h,int l)//显示你输入的数组;
{
for(int i=0;i<h;i++)
{
for(int j=0;j<l;j++)
{cout<<a[i][j]<<'\t';}
cout<<endl;
}
}
void main()
{
int h,l;
int p;//用动态数组储存,节省空间;
cout<<"请输入你查找马鞍点的数组的行和列:\n";
cin>>h>>l;
p = new int [h];
for(int i=0;i <= h-1;i++)
{
p[i]=new int[l];
}
cout<<"请输入你要查找马鞍点的数组:\n";
for(i=0;i<h;i++)
{
for(int j=0;j<l;j++)
{
cin>>p[i][j];
}
cout<<endl;
}
Display(p,h,l);
chazhao(p,h,l);
delete []p;//释放空间;
}
以上就是关于c# 编写一个控制台应用程序,找出3*4的二维数组的鞍点全部的内容,包括:c# 编写一个控制台应用程序,找出3*4的二维数组的鞍点、编写C++程序求二维数组的鞍点、呼叫C达人,C程序设计,题目找出一个二维数组中得鞍点,即该位置上的元素在该行上最大、在该列上最小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)