当前位置: 代码迷 >> C语言 >> 这个简单程序有错吗?
  详细解决方案

这个简单程序有错吗?

热度:84   发布时间:2007-07-28 08:45:17.0
这个简单程序有错吗?
#include<stdio.h>
void main()
{
int i,j,t;
int a[5][5];
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(i=0;i<5;i++)
for(j=0;j<i;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
for(i=0;i<5;i++)
for(j=0;j<5;j++)
printf("%d",a[i][j]);
}
搜索更多相关的解决方案: void  include  

----------------解决方案--------------------------------------------------------
每次进入 Turbo c++ -IDE  就会出不来,要通过结束进程才可以退出!!
----------------解决方案--------------------------------------------------------

程序本身在VC能编译通过.TC为什么不行就不知道了,void main()最好改成int main() return 0


----------------解决方案--------------------------------------------------------
完全没问题,是你的编程环境有问题
----------------解决方案--------------------------------------------------------
编程环境有问题?我不知道啊,是学校拷过来的啊!!!
有没有人有 TC3.0 啊,可不可以发给我,先谢谢了!!
haisu55@sohu.com
----------------解决方案--------------------------------------------------------
呵呵,是你的语句有问题啊
很多同学都这样啊,做错了题目怪答案有问题

----------------解决方案--------------------------------------------------------
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
这个地方,假设你输入了一个a[i][j]的值等于10
那么你是这样输入的:
10[回车]
这样,scanf先接受了10,
在下一次循环的时候它又接受了[回车]
导致数据出错.
所以,应该清除残余在输入缓冲区的信息
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
scanf("%d",&a[i][j]);
fflush(stdin);
}

----------------解决方案--------------------------------------------------------
是不是这样啊?
先试下吧
----------------解决方案--------------------------------------------------------

还是不行的.


----------------解决方案--------------------------------------------------------
而且我记得当输入的是char型时会读入回车,
另外输入的数据也是可以分五行,也可以一行的.回车是没有影响的吧.
----------------解决方案--------------------------------------------------------
  相关解决方案