这个简单程序有错吗?
#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]);
}
----------------解决方案--------------------------------------------------------
每次进入 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型时会读入回车,
另外输入的数据也是可以分五行,也可以一行的.回车是没有影响的吧.
----------------解决方案--------------------------------------------------------