为什么输出这个?

来源:百度知道 编辑:UC知道 时间:2024/09/22 20:31:19
用Win-Tc编了个程序.如下:
#include<stdio.h>
void main()
{
int i,a[10];
for(i=0;i<10;i++)
a[i++]=2*i+1;
for(i=9;i>=0;i--)
printf("%d",a[i]);
printf("\n%d %d\n",a[5.2],a[5.8]);
getch();
}

为什么输出了一些乱的数字?请各位高手指点一下...

你的程序有问题,如果按你的赋值法,这样修改显示不会有乱码:
#include<stdio.h>
void main()
{
int i,a[10];
for(i=0;i<10;i++)
a[i++]=2*i+1;
//for(i=9;i>=0;i--)
for(i=8;i>=0;i-=2)
printf("%d ",a[i]); //%d后面有一个空格,会被BaiD自动屏蔽
//printf("\n%d %d\n",a[5.2],a[5.8]); //这句完全不知道是什么意思!
getch();
}

错在你循环的时候
for(i=0;i<10;i++)
a[i++]=2*i+1; 这里多用了一个i++,造成隔一个数赋值,也就是a[1],a[3]...没有赋值,所以是随机的数,自然会有乱码.

可能的修改:
#include<stdio.h>
void main()
{
int i,a[10];
for(i=0;i<10;i++)
a[i]=2*i+1;
for(i=9;i>=0;i--)
printf("%d ",a[i]); //%d后面有一个空格,会被BaiD自动屏蔽
//printf("\n%d %d\n",a[5.2],a[5.8]); //这句完全不知道是什么意思!
getch();
}

编译都通不过吧,怎么输出?

a[]没有初始化