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

#include<stdio.h>#definen10voidmove(inta[]){inti,j=1;for(i=1;i<=n;i++)if(a[i]!=0){a[j... #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 ",A[i]);
}
这个能运行且能运行出答案
比如输入1 0 2 0 3 0 4 0 5 0
输出1 2 3 4 5 0 0 0 0 0而前一个就没有结果输出,
请问哪位高人这是怎么回事啊?
展开
 我来答
595571581
2009-12-12
知道答主
回答量:11
采纳率:0%
帮助的人:7.9万
展开全部
关键处不一样:
scanf("%d ",&A[i]);

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

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

还有:数组不要进行越界操作!很重要!切记!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汉坤(北京)流体控制技术有限公司
2023-06-12 广告
根据大数据评选,2022年电动执行器十大品牌名单有:1. 秀辉。2. 丹冠。3. 方威。4. 天津宝恒。5. 常辅股份。6. 新峰。7. 德博科技。8. 摩控。9. 科威纳。10. deyo。以上十大品牌是电动执行器行业的知名品牌,排名不分... 点击进入详情页
本回答由汉坤(北京)流体控制技术有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式