|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
int main()
{
int a[6][6]={{9,8,8,8,8,8},
{8,9,5,5,5,5},
{5,5,9,4,4,4},
{4,4,4,9,2,2},
{2,2,2,2,9,0},
{0,0,0,0,0,9}};
int i,j,t,c;
for(t=0;t<35;t++)//全部比较1次需要35次才能比较完。
{
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(a[i][j]>a[i][j+1])
{
c=a[i][j];a[i][j]=a[i][j+1];a[i][j+1]=c;
}
}
}
}
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
想问一下这个代码a[0][6]与a[1][1]怎么比较的。而且当j=5时j+1=6,他怎么不越界的。
多维数组直接按一维数组处理就好了 #include<stdio.h>
int main(void)
{
int a[6][6]={{9,8,8,8,8,8},
{8,9,5,5,5,5},
{5,5,9,4,4,4},
{4,4,4,9,2,2},
{2,2,2,2,9,0},
{0,0,0,0,0,9}} ;
int * d , i , j , t ;
d = & a[0][0] ;
for(i = 0 ; i < 35 ; i ++) {
for(j = i + 1 ; j && d[j] < d[j - 1] ; j --) {
t = d[j - 1] ;
d[j - 1] = d[j] ;
d[j] = t ;
}
}
for(i = 0 ; i < 6 ; i ++)
{
for(j = 0 ; j < 6 ; j ++)
{
printf("%d " , a[i][j]) ;
}
printf("\n") ;
}
return 0 ;
}
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
0 0 0 0 0 0
2 2 2 2 2 2
4 4 4 4 4 4
5 5 5 5 5 5
8 8 8 8 8 8
9 9 9 9 9 9
D:\00.Excise\C>
|
|