我用的vs2012,冒泡法的学习过程,为什么我的程序和小甲鱼的一样,会出现乱码
本帖最后由 风之残月 于 2014-11-10 10:10 编辑void main()
{
int a;
int i,j,t;
printf("请输入10个数值:\n");
for(i=0;i<10;i++)
{
scanf_s("%d",&a);
}
printf("\n");
for(j=0;j<9;j++)
{
for (i=0;i<=9-j;i++)
{
if(a>a)
{
t=a;
a=a;
a=t;
}
}
}
for(i=0;i<10;i++)
{
printf("%d",a);
}
}
我使用单步调试,输入10个数值之后,进入第二个for循环,不管输入的结果是什么,最后一个值a会被一个乱码覆盖!!!这是为什么?
本帖最后由 流行语 于 2014-8-12 17:53 编辑
int a;
int i,j,t;
printf("请输入10个数值:\n");
for(i=0;i<10;i++)
{
scanf_s("%d",&a);
}
printf("\n");
for(j=0;j<9;j++)
{
for (i=0;i<9-j;i++)
{
if(a>a)
{
t=a;
a=a;
a=t;
}
}
}
for(i=0;i<10;i++)
{
printf("%d\t",a);
}
第二层循环多了一个等于号。因为下面进行a比较,如果有等于号,超出数组的长度,所以会乱码。
麻烦你以后直接贴代码,这样可以直接复制。 流行语 发表于 2014-8-12 17:49
第二层循环多了一个等于号。因为下面进行a比较,如果有等于号,超出数组的长度,所以会乱码。
麻烦你以 ...
谢谢谢谢!
页:
[1]