|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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>
复制代码
|
|