免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1793 | 回复: 4

ascii表的后面为什么会有........我搞不懂 [复制链接]

论坛徽章:
0
发表于 2003-01-22 23:11 |显示全部楼层
这条题的程序要输入一些字符,然后把字符,和对应的ascii码以表的形式输出,
我做出来后,输出的前面都还正常,但是在表的最后面总要输出些莫名其妙的东西,用vc编译是输出一个很大的整数,用tc编译是多加一个字符。
这到底是怎么回事, 到底是那里搞错了?


  1. #include <stdio.h>;

  2. #define MAXGET 50

  3. main()
  4. {
  5.         int c, i, j;
  6.         int a[MAXGET];

  7.         i = 0;
  8.         while ( (c = getchar()) != EOF ) {
  9.                 a[i] = c;
  10.                 i++;
  11.         }
  12.         printf("\n");
  13.         printf("A ascii table\n");
  14.         for ( j = 0; j <= i; ++j ) {
  15.                 printf("%5c   %5d,", a[j], a[j]);
  16.                 if ( (j % 5) == 4 )    /* the condition of print "\n" */
  17.                         printf("\n");
  18.         }
  19. }
复制代码



执行后
abcdefg

a     97, b     98, c     99, d    100, e    101
f    102, g   103    -858993460 最后这个数字是怎么出来的
而且用tc编译出来的不同,是多加一个字符

论坛徽章:
0
发表于 2003-01-23 08:53 |显示全部楼层

ascii表的后面为什么会有........我搞不懂

我觉得是你的for循环的范围有问题,应该是 for ( j = 0; j <i; ++j )
你可以数数,是输入了几个字符,输出又是几个字符(你最好输入的文件结束符不能算的,因为它根本没有存入你定义的数组中)。
不知道正确不,你试试

论坛徽章:
0
发表于 2003-01-23 09:56 |显示全部楼层

ascii表的后面为什么会有........我搞不懂

好像你下面for里面的j<=i是有问题的,应该去掉等号
[quote="wang_yao"]
(for j=0;j<=i;j++)
[/quote]

论坛徽章:
0
发表于 2003-01-23 09:57 |显示全部楼层

ascii表的后面为什么会有........我搞不懂

实际上是多执行了一次,最后一次的printf打印结果是不可预料的。

论坛徽章:
0
发表于 2003-01-23 10:30 |显示全部楼层

ascii表的后面为什么会有........我搞不懂

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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP