搜索
查看: 2805|回复: 20
打印 上一主题 下一主题

求大神来解析这段代码为什么没有输出字符

[复制链接]
跳转到指定楼层
楼主
发表于 2013-7-31 16:51:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4.    { int i,j;
  5. char a[][5]={{'B','A','S','I','C',},{'D','B','A','S','E'}};
  6.         for(j=0;i<=1;i++)
  7.     {for(j=0;j<=4;j++)
  8.     printf("%c",a[i][j]);
  9.     printf("\n");}
  10.    
  11.         system("pause");
  12.         return 0;
  13. }
复制代码
为什么没有输出啊~从别网站上抄的不能复制累死了。。。。
沙发
发表于 2013-7-31 17:01:01 | 只看该作者
你抄错了一个字符
for(j=0;i<=1;i++)->
  1. for(i=0;i<=1;i++)
复制代码
板凳
 楼主| 发表于 2013-7-31 17:39:42 | 只看该作者
rosynirvana 发表于 2013-7-31 17:01
你抄错了一个字符
for(j=0;i

http://see.xidian.edu.cn/cpp/html/52.html       7.13题。。。。刚才我改过来了还是没有输出。。。。。
地板
发表于 2013-7-31 17:42:58 | 只看该作者
超神级 发表于 2013-7-31 17:39
http://see.xidian.edu.cn/cpp/html/52.html       7.13题。。。。刚才我改过来了还是没有输出。。。。。

不是很明白,你要表达几个意思?
7.13怎么了?和上面那段代码有什么关系?
5#
 楼主| 发表于 2013-7-31 18:01:48 | 只看该作者
rosynirvana 发表于 2013-7-31 17:42
不是很明白,你要表达几个意思?
7.13怎么了?和上面那段代码有什么关系?

pritnf[code第一个问题,表达2个问题\n[/code]
printf
  1. 第一个问题是我把for(j=0;i<=1;i++)改为for(i=0;i<=1;i++)还是什么都没有输出
复制代码
printf
  1. 上面给我发了个网站地址是一些C语言的入门资料,希望你可以帮忙看下他们的资料有问题吗。7.13是那个网页的题的标号也就是我上面发的题目。。。
复制代码
return 0;
}
6#
 楼主| 发表于 2013-7-31 18:18:09 | 只看该作者

一个好标题,将获得更多人关注哦。

rosynirvana 发表于 2013-7-31 17:42
不是很明白,你要表达几个意思?
7.13怎么了?和上面那段代码有什么关系?

还在?
7#
发表于 2013-7-31 18:19:06 | 只看该作者
1 没结果的再把整段代码贴一遍

2 看上去很多写法偏过时
  1. #include"stdio.h"
  2. main()
  3. {
  4.   char st[15];
  5.   printf("input string:\n");
  6.   gets(st);
  7.   puts(st);
  8. }
复制代码
标准头文件不应该用"stdio.h“,而是<stdio.h>
gets是不该使用的,有缓冲区溢出的问题,这里只分配了15个字符的空间,超出15之后会破坏掉程序所在的空间
8#
 楼主| 发表于 2013-7-31 18:29:51 | 只看该作者
rosynirvana 发表于 2013-7-31 18:19
1 没结果的再把整段代码贴一遍

2 看上去很多写法偏过时标准头文件不应该用"stdio.h“,而是

收获颇丰!搞明白了一个以前迷惑的问题
  1. gets是不该使用的,有缓冲区溢出的问题,这里只分配了15个字符的空间,超出15之后会破坏掉程序所在的空间
复制代码
我看过的教程里都没说超出空间的后果,
9#
发表于 2013-7-31 18:35:31 | 只看该作者
一般的实现中超出的部分也是照单全收,于是可以写到别的变量的地址上,甚至把代码结构破坏掉
如果一段代码不加说明地用gets,这段代码就没有看下去的必要了
10#
 楼主| 发表于 2013-7-31 19:38:51 | 只看该作者
rosynirvana 发表于 2013-7-31 18:35
一般的实现中超出的部分也是照单全收,于是可以写到别的变量的地址上,甚至把代码结构破坏掉
如果一段代码 ...

嗯嗯。     

点评

CUI
都没注意到呢,受教了  发表于 2013-7-31 21:21
11#
发表于 2013-8-2 21:17:18 | 只看该作者

        for(j=0;i<=1;i++)

   里面应该是i,不是j
12#
 楼主| 发表于 2013-8-2 21:18:36 | 只看该作者
lihongjian987 发表于 2013-8-2 21:17
for(j=0;i

是i也不输出
13#
发表于 2013-8-2 21:46:14 | 只看该作者
超神级 发表于 2013-8-2 21:18
是i也不输出

完整代码是什么样子的
上次我问了你好像没看到
14#
 楼主| 发表于 2013-8-2 22:23:15 | 只看该作者
这个就是那个图片

TEX9M3(}GZ]IN{HO]}5[4Z1.jpg (28.7 KB, 下载次数: 0)

TEX9M3(}GZ]IN{HO]}5[4Z1.jpg
15#
 楼主| 发表于 2013-8-2 22:23:37 | 只看该作者
rosynirvana 发表于 2013-8-2 21:46
完整代码是什么样子的
上次我问了你好像没看到

我发了个图片你看下。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表