当前位置: 代码迷 >> C语言 >> 求助。。。看下这个程序
  详细解决方案

求助。。。看下这个程序

热度:303   发布时间:2008-03-11 20:14:40.0
求助。。。看下这个程序
#include "stdio.h"
#define N 3
int array[N][N];
convert(int array[N][N])
{int i,j,t;
    for(i=0;i<N;i++)
     for(j=i+1;j<N;j++)
         {t=array[i][j];
         array[i][j]=array[j][i];
         array[j][i]=t;}
     }
main()
{int i,j;
    printf("input array: \n");    
    for(i=0;i<N;i++)
     for(j=0;j<N;j++)
     scanf("%d",&array[i][j]);
     printf("aaaaa1 :\n");
     for(i=0;i<N;i++)
     {for(j=0;j<N;j++)
     printf("%5d",&array[i][j]);
         printf("\n");
     }
     convert(array);
     printf("aaaaa2 :\n");
     for(i=0;i<N;i++)
     {for(j=0;j<N;j++)
       printf("%5d",&array[i][j]);
         printf("\n");
     }
}

就是定义一个三行三列的行列式让他转置。。。。。。但是TurboC运行的时候变成这样子了
input array:
1
2
3
4
5
6
7
8
9
aaaaa1 :
1492 1494 1496
1498 1500 1502
1504 1506 1508
aaaaa2:
1492 1494 1496
1498 1500 1502
1504 1506 1508

麻烦看下什么原因。。。。。。
还有一个问题。。。。。栈是后进先出的。。。那么他入栈顺序知道了。。他的出栈顺序应该也是唯一的啊。。。。。。但是为什么看到有些题目说下列选项哪个出栈是不可能的?就是说出栈顺序不唯一吗?
搜索更多相关的解决方案: array  printf  convert  

----------------解决方案--------------------------------------------------------
printf("%5d",&array[i][j]);
----->
printf("%5d", array[i][j]);
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]zbqf109[/un] 在 2008-3-11 20:19 的发言:[/bo]

printf("%5d",&array[j]);
----->
printf("%5d", array[j]);

晕啊啊。。。。。。。就这错害我卡了一下午= =。。。。
恩感谢LS指点迷津。。。。谢谢啊
还有下面那个关于栈的问题能解答下不。。。。。。我巨菜鸟一个= =

[[it] 本帖最后由 zonelight 于 2008-3-11 20:23 编辑 [/it]]
----------------解决方案--------------------------------------------------------
关于栈的进出顺序,举个例子,假如现在有5个变量a, b, c, d, e, 入栈顺序是a->b->c->d->e,那么我们来看几种可能的进出栈可能:
(1)  push a
(2)  push b
(3)  push c
(4)  pop  c
(5)  pop  b
(6)  push d
(7)  pop  d
(8)  pop  a
(9)  push e
(10) pop  e
我们看到入栈的指令:
(1) (2) (3) (6) (9)
也就是 a, b, c, d, e
出栈的指令:
(4) (5) (7) (8) (10)
也就是 c, b, d, a, e
栈的“先进后出”的意思是如果 a 进栈在 b 之前,那么 a 出栈肯定在 b 之后。但是,如果 a 进栈在 b 出栈之后,那么仍旧是“b 先进,b 先出”。
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]zbqf109[/un] 在 2008-3-11 20:28 的发言:[/bo]

关于栈的进出顺序,举个例子,假如现在有5个变量a, b, c, d, e, 入栈顺序是a->b->c->d->e,那么我们来看几种可能的进出栈可能:
(1)  push a
(2)  push b
(3)  push c
(4)  pop  c
(5)  pop  b
(6)  push d
(7)  pop  d
(8)  ...

完全明白了= =。。。。原来后进先出这么个意思。。。。感谢大大。。。。。
----------------解决方案--------------------------------------------------------
我也没看出来,汗自己一个。。。。。。。。。。。。。
----------------解决方案--------------------------------------------------------
  相关解决方案