社区
C语言
帖子详情
请帮我看看哪里错了?
gongqiang1
2011-08-15 12:46:42
int a[]={1,2,3,4,5,6,7,8,9,0}, i;
for(i = 10; i < 0; i++)
a[i] = i;
//printf("% d\n",a[i]);
for(i = 9 ; i > 0; i--)
printf("% d\n",a[i]);
...全文
190
28
打赏
收藏
请帮我看看哪里错了?
int a[]={1,2,3,4,5,6,7,8,9,0}, i; for(i = 10; i 0; i--) printf("% d\n",a[i]);
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵4老师
2011-08-17
打赏
举报
回复
[Quote=引用 20 楼 menxiazougou 的回复:]
很明显你第一行定义的数组a[]只有1、2、3、4、5、6、7、8、9、0这10个元素。
而数组角标是从0开始的,所以你定义的数组是a[0]=1、a[1]=2、a[2]=3、a[3]=4、……a[9]=0这十个元素,就是数组a[]的最大角标是9,也就是最后一个元素是a[9]。
而你那个for循环确从i=10开始,明显错了,根本没有a[10]这个元素!!!
[/Quote]
a[10]很可能和i在内存中占用同一个地址。
VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
简单调调
2011-08-17
打赏
举报
回复
#include<iostream>
using namespace std;
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0};
for(int i = 0; i < 10; i++) //正向输出
{
cout<<a[i]<<'\t';
}
cout<<endl; //换行,逆向输出
for(int i = 9 ; i >= 0; i--)
{
cout<<a[i]<<'\t';
}
cout<<endl;
}
代码比较乱,空行 缩进都不规范,必须练啊~我也在学习中
gongqiang1
2011-08-17
打赏
举报
回复
帮我写一个完整的逆向输出!
小木
2011-08-17
打赏
举报
回复
for(i = 10; i < 0; i++)
-> for(i=0; i<10; i++)
for(i = 9 ; i > 0; i--)
-> for(i = 9; i >= 0; i--)
刚开始学程序吧,没事,慢慢来
wangbingyujava
2011-08-17
打赏
举报
回复
不知道你 想说什么? 逻辑表达能力也太差了点...
xiaoyucong
2011-08-17
打赏
举报
回复
“for(i = 10; i < 0; i++)” 首先 i不能为10,因为数组 a 已定义为0-9共10个元素,所以逆向输出从9开始,其次i要大于0。
zxd0914gmail
2011-08-17
打赏
举报
回复
数组越界啊
for(i=10;i>0;++i)
a[10-i] = i;
Alexander
2011-08-17
打赏
举报
回复
[Quote=引用 5 楼 luciferisnotsatan 的回复:]
for(i = 10; i < 0; i++)
这要加到溢出了才会结束。在那之前估计就访问违规了。
[/Quote]
这里会执行到么?
第一轮就不满足条件跳出了说。
朝生暮死
2011-08-17
打赏
举报
回复
很明显你第一行定义的数组a[]只有1、2、3、4、5、6、7、8、9、0这10个元素。
而数组角标是从0开始的,所以你定义的数组是a[0]=1、a[1]=2、a[2]=3、a[3]=4、……a[9]=0这十个元素,就是数组a[]的最大角标是9,也就是最后一个元素是a[9]。
而你那个for循环确从i=10开始,明显错了,根本没有a[10]这个元素!!!
gongqiang1
2011-08-17
打赏
举报
回复
逆向输出!!
暮雨晨舟
2011-08-16
打赏
举报
回复
不知道这个程序想要表达什么意思或者实现什么功能
赵4老师
2011-08-16
打赏
举报
回复
单步调试和设断点调试是程序员必须掌握的技能之一。
luckymini
2011-08-16
打赏
举报
回复
[Quote=引用 8 楼 wlcbh 的回复:]
for(i = 10; i < 0; i++)
楼主是否写错了?
[/Quote]
楼主需要什么程序啊?
seuer126
2011-08-16
打赏
举报
回复
LZ写的什么程序啊,看不懂啊
l369294289
2011-08-16
打赏
举报
回复
for(i = 10; i < 0; i++) //i=10,i<0开始就不成立,循环就不会执行
a[i] = i;
所以,这两排是多余的,程序只执行了
for(i = 9 ; i > 0; i--)
printf("% d\n",a[i]);
运行结果是0 9 8 7 6 5 4 3 2
至善者善之敌
2011-08-16
打赏
举报
回复
for(i = 10; i < 0; i++)
恩,可以结贴了
yht8708
2011-08-16
打赏
举报
回复
数组应用超界
AnYidan
2011-08-16
打赏
举报
回复
[Quote=引用 5 楼 luciferisnotsatan 的回复:]
for(i = 10; i < 0; i++)
这要加到溢出了才会结束。在那之前估计就访问违规了。
[/Quote]
++
ForestDB
2011-08-15
打赏
举报
回复
for(i = 10; i < 0; i++)
for(i = 9 ; i > 0; i--)
iambic
2011-08-15
打赏
举报
回复
某人去见大夫,进门就说:“大夫,我有病啊”。
大夫问:“你有什么病啊?”
“我有病啊。”
“你有什么症状啊?”
“我有病啊”
“……”
“你到底会不会看?”
“……”
于是患者无满意答案结贴了。
加载更多回复(8)
请
路过的大佬
帮
我
看看
错
在哪里 感谢感谢
/ 声明为静态局部变量,以保留其值。//
请
在此输入您的代码。
请
各位大佬
帮
我
看看
哪里
错
了
#include #include #include #include using namespace std; struct student{ int yu; int shu; int yin; int total; int hao; }; student x[301]; int i,j; int main() { int n; cin>>n; for(i=1;i<=n;i++...
请
大家
帮
我
看看
哪里
错
了
括号匹配问题
请
大神
帮
我
看看
哪里
错
了
括号匹配问题
请
大神
帮
忙检查
错
误 #include #include<stdio.h> #include<malloc.h> #include<stdlib.h> using namespace std; #define MAX 200 #define INCREMENT 200 #define ERROR -1 typedef struct { char base; char top; int stacksize; }S;void Creat(S &stack)
杭电2043
请
大神
帮
我
看看
哪
错
了?谢谢了!
#include<iostream>using namespace std;int main(){int n,i=0,j,b,c,d,e,k;char a[55]; cin>>n; while(i<n) { b=0,c=0,d=0,e=0; getchar(); gets(a);k=strlen(a); for(j=...
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章