两个一样的程序为什么一个能运行但是运行不出结果呢?

来源:百度知道 编辑:UC知道 时间:2024/09/28 06:54:17
#include <stdio.h>
#define n 10
void move(int a[])
{
int i,j=1;
for(i=1;i<=n;i++)
if(a[i]!=0)
{
a[j]=a[i];
j++;
}
for(i=j;i<=n;i++)
a[i]=0;
}
void main()
{
int A[n];
int i;
printf("请任意输入10个数字\n");
for(i=1;i<=n;i++)
scanf("%d ",&A[i]);
move(A);
for(i=1;i<=n;i++)
printf("%d ",A[i]);

}
这个程序能运行但是不出答案
#include <stdio.h>
#define n 10
void move(int a[])
{
int i,j=1;
for(i=1;i<=n;i++)
if(a[i]!=0)
{ a[j]=a[i];j++;}
for(i=j;i<=n;i++)
a[i]=0;
}
void main()
{
int A[n];
int i;
printf("请任意输入10个数字\n");
for(i=1;i<=n;i++)
scanf("%d",&A[i]);
move(A);
for(i=1;i<=n;i++)
printf("%d "

关键处不一样:
scanf("%d ",&A[i]);

scanf("%d",&A[i]);
有区别吧
上面的scanf("%d ",&A[i]);中的"%d "多了个空格;

“前一个就没有结果输出”你说这个问题是错误的,可以运行,只不过最后一个输入要加个空白符而已

还有:数组不要进行越界操作!很重要!切记!