编程论坛's Archiver

wjcloudy 发表于 2007-11-13 09:38

请教一个排序问题!

<P>将一个数组的元素按大小顺序重新排列,必须用for循环语句:<BR>我写了一个,但数组元素有相同的就会输不出最小的数,请各位指点一二.<BR>#include&lt;stdio.h&gt;<BR>        int main()<BR>        {<BR>            int b[3][4],m,n,i,j,max,min,k=10000;<BR>            int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};<BR> /*输出原数组*/<BR>           printf("原数组:\n");<BR>            for(i=0;i&lt;3;i++)<BR>            {<BR>                for(j=0;j&lt;4;j++)<BR>                {<BR>                    printf("%3d",a[i][j]);<BR>                     if(j==3)<BR>                    printf("\n");<BR>                }<BR>            }<BR> /*求数组最小值*/</P>
<P>            min=a[0][0];<BR>            for(i=0;i&lt;3;i++)<BR>            {<BR>                for(j=0;j&lt;4;j++)<BR>                {<BR>                     if(min&gt;=a[i][j])min=a[i][j]; <BR>                }<BR>            }<BR>/*将数组里的数按大小顺序排列*/<BR>                    <BR>            printf("排序后的数组:\n");<BR>            max=a[0][0];<BR>            for(m=0;m&lt;=2;m++)<BR>            {<BR>                for(n=0;n&lt;=3;n++)<BR>                {<BR>                    for(i=0;i&lt;=2;i++)<BR>                    {<BR>                        for(j=0;j&lt;=3;j++)<BR>                        {<BR>                            if(a[i][j]&gt;=k)continue;<BR>                            else if(max&lt;=a[i][j])<BR>                                max=a[i][j];<BR>                        }<BR>                    }<BR>                    b[m][n]=max;<BR>                    printf("%-3d",b[m][n]);<BR>                    k=max;<BR>                    max=min;<BR>                        if(n==3)printf("\n");<BR>                }<BR>            }<BR>            return 0;<BR>        }</P>

codelet 发表于 2007-11-13 10:10

<P>你没写输出语句<BR>/*求数组最小值*/</P>
<P>min=a[0][0];<BR>for(i=0;i&lt;3;i++)<BR>    for(j=0;j&lt;4;j++)<BR>        if(min&gt;a[i][j])<BR>            min=a[i][j];<BR><FONT color=#ff0000>printf("%d",min);  //输出min<BR></FONT></P>

yuhuidie36 发表于 2007-11-13 10:23

在我机子上咋运行不通啊!

codelet 发表于 2007-11-13 10:39

不是吧?在我机子上输出-10 啊

bayforever 发表于 2007-11-13 11:34

。。。。。还没到10篇

lchy110 发表于 2007-11-14 10:05

<P>马上就10</P>

zmicesea 发表于 2007-11-14 11:44

呵呵

wjcloudy 发表于 2007-11-17 18:42

回复:(codelet)你没写输出语句/*求数组最小值*/...

我并不是要输出最小值,而是输出重大到小排序后的数组

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.