请问这个C程序哪里错了,12345,要变成54321,可是结果出来的是-46 54321,-46哪来的啊?

[复制链接]
查看11 | 回复2 | 2011-7-16 17:13:37 | 显示全部楼层 |阅读模式
#define N 5
#include
void main()
{
int a[N],i;
printf("\nEnter array a:\n");
for(i=0;i=0;i--)
printf("%4d",a);
}

回复

使用道具 举报

千问 | 2011-7-16 17:13:37 | 显示全部楼层
因为你第一遍循环调用通过scanf给数组赋值后i的值是N,而数组的最大下标是N-1越界访问,46值是垃圾值,越界访问很危险...
回复

使用道具 举报

千问 | 2011-7-16 17:13:37 | 显示全部楼层
i要从新初始化!for(;i>=0;i--)printf("%4d",a);之前加i=N-1;...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行