二维数组寻找马鞍点问题,希望各位大大们赐教,在此先鞠躬了,谢谢! 以下是我编的程序和错误提示!

[复制链接]
查看11 | 回复1 | 2011-5-18 11:22:48 | 显示全部楼层 |阅读模式
//寻找马鞍点,并输出
#includeiostream.h
voidchazhao(inta[],inth,intl)
{
        inti,j,imax=0,jmin=0;//imax是行的最大下标,jmin是列的最小下标
        for(i=0;ih;i)
        {
               
                for(j=0;jl;j)
                {
                        if(a[imax]a[j])
                        {
                                imax=j;
                               
                        }
                        else{imax=imax;}//找出第i行的最大值,记录最大值的列的下标imax
                }
       
for(i=0;ih;i)
                {
                        if(a[jmin][imax]a[imax])
                        {
                jmin=i;//找出imax列里的最小值,记录下标jmin
                        }
                }
                if(jmin==i){cout\"第\"i\"行的马鞍点是:\"a[jmin][imax]endl;}
                else{cout\"第\"i\"行没有马鞍点!endl\";}
        }
}
voidmain()
{
        inta[1000][1000],h,l,i,j;
        cout\"请输入你查找马鞍点的数组的行和列:\\n\";
        cinhl;
        cout\"请输入你要查找马鞍点的数组:\\n\";
for(i=0;ih;i)
        {
                for(j=0;jl;j)
                {
cina[j];
                }
                coutendl;
        }
        chazhao(a,h,l);
}
--------------------Configuration:寻找马鞍点-Win32Debug--------------------
Compiling...
寻找马鞍点.cpp
C:\\DocumentsandSettings\\胡世勇\\桌面\\我的C练习\\函数\\寻找马鞍点.cpp(11):errorC2109:subscriptrequiresarrayorpointertype
C:\\DocumentsandSettings\\胡世勇\\桌面\\我的C练习\\函数\\寻找马鞍点.cpp(11):errorC2109:subscriptrequiresarrayorpointertype
C:\\DocumentsandSettings\\胡世勇\\桌面\\我的C练习\\函数\\寻找马鞍点.cpp(21):errorC2109:subscriptrequiresarrayorpointertype
C:\\DocumentsandSettings\\胡世勇\\桌面\\我的C练习\\函数\\寻找马鞍点.cpp(21):errorC2109:subscriptrequiresarrayorpointertype
C:\\DocumentsandSettings\\胡世勇\\桌面\\我的C练习\\函数\\寻找马鞍点.cpp(26):errorC2109:subscriptrequiresarrayorpointertype
C:\\DocumentsandSettings\\胡世勇\\桌面\\我的C练习\\函数\\寻找马鞍点.cpp(44):errorC2664:\'chazhao\':cannotconvertparameter1from\'int[1000][1000]\'to\'int[]\'
Typespointedtoareunrelated;conversionrequiresreinterpret_cast,C-stylecastorfunction-stylecast
执行cl.exe时出错.

寻找马鞍点.obj-1error(s),0warning(s)
回复

使用道具 举报

千问 | 2011-5-18 11:22:48 | 显示全部楼层
你这程序有很多问题,比如说你那查找的for循环就有问题;因为我以前没编过,所以我用C重新帮你编了,你要用voidchazhao(inta[][1000],inth,intl)这样才是对的,我用的是动态数组,你看看吧,不懂的HI我。
#include\"iostream\"
usingnamespacestd;

voidchazhao(int**a,inth,intl)//查找;
{
        intc=0;
        intmin;
        intflag=0;//标志位,1为找到了,0为没找到;
        min=a[0][0];
        for(inti=0;ih;i)
        {
               
                for(intj=0;jl;j)
                {
                        if(a[j]min)
                        {
                                min=a[j];
                                c=j;
                               
                        }
                //找出第i行的最小值;c列;
                }
       
for(j=0;jh;j)
                {
                        if(a[j][c]min)//比较第i行第c列是不是第c列中最大值;
                        {
                                flag=0;
                                break;
}
elseflag=1;
                }
                if(flag==1)//在第i行找到了
                {
                cout\"第\"i\"马鞍点为a[\"i\"][\"c\"]=\"a[c]endl;
                }
                else
                {
                        cout\"第\"i\"行的马鞍点不存在!\"endl;
                }
        }
}

voidDisplay(int**a,inth,intl)//显示你输入的数组;
{
        for(inti=0;ih;i)
        {
                for(intj=0;jl;j)
        {couta[j]\'\\t\';}
                coutendl;
        }

}
voidmain()
{
        inth,l;
        int**p;//用动态数组储存,节省空间;
        cout\"请输入你查找马鞍点的数组的行和列:\\n\";
        cinhl;
p=newint*[h];
for(inti=0;i=h-1;i)
{
p=newint[l];
}
        cout\"请输入你要查找马鞍点的数组:\\n\";
for(i=0;ih;i)
        {
                for(intj=0;jl;j)
                {
cinp[j];
                }
                coutendl;
        }
        Display(p,h,l);
        chazhao(p,h,l);
        delete[]p;//释放空间;
}









<h4class=\"ask\">追问


呵呵,谢谢你提供的答案,二维数组的列必须要定,以前没理会清楚,还有循环里,在以i为变量的循环里,不应该再用i做zi循环控制变量了,开始以为有块作用域不怕两个i冲突,结果还是有冲突,改了这两处后程序就没问题了,不过你的程序是动态数组,用到指针,我还没学到,下一章就是了,到时候再来瞧瞧你这答案,嘿嘿,哦,还有个问题,二维数组的两个维都设为1000的话,会运行出错!!!汗,谁会需要两个维都1000的二维数组啊,我真是晕头了....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行