LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1281|回复: 8

一个简单的问题,但是我不明白。

[复制链接]
发表于 2002-7-18 09:46:57 | 显示全部楼层 |阅读模式
一个简单的程序,不过我想不明白:
#include <stdio.h>
int main(void)
{int counter;
int arry[6];
for(counter=0;counter<7;counter++)
{printf("lease input data:\n");
  scanf("%d\n",&arry[counter]);}
printf("The arry is:\n");
for(counter=0;counter<7;counter++)
{printf("%d\n",arry[counter]);}
}

我所设想这段程序的执行结果应该是:
Please input data:
1
Please input data:
2
Please input data:
3
Please input data:
4
Please input data:
5
Please input data:
6
Please input data:
7
The arry is:
1
2
3
4
5
6
7
但是实际上程序编译出来运行却有所不同
Please input data:
1
2
Please input data:
3
Please input data:
4
Please input data:
5
Please input data:
6
Please input data:
7
Please input data:
8
The arry is:
1
2
3
4
5
6
7
问题出在头两行,输入1以后回车并不是预想的换行然后显示“Please input data:”,而是要继续输入下一个数据。以后的都正常,但是最后又要多输入一个数据。
我实在是想不明白,请问这是怎么回事呢?谢谢。
发表于 2002-7-18 16:11:50 | 显示全部楼层
把scanf("%d\n",&arry[counter]);这句里的\n换行符去掉试试?
哈哈。。兄弟,我也不懂,请兄弟们一起讨论
发表于 2002-7-18 16:35:24 | 显示全部楼层
int arry[6]; 维数定义的太小,看来VB比较熟
 楼主| 发表于 2002-7-19 09:49:54 | 显示全部楼层

谢谢pdny兄
就是这么回事啊
你真行!
发表于 2002-7-19 10:49:37 | 显示全部楼层
哈哈。兄弟,碰巧而已。。歪打正着
 楼主| 发表于 2002-7-19 13:36:59 | 显示全部楼层
谦虚谦虚啊~~~~~~
发表于 2002-7-21 03:08:57 | 显示全部楼层
555~我也发现了
发表于 2002-7-21 06:45:49 | 显示全部楼层

恩?

什么原因?多一个换行就会这样是为什么?
自由狼-台风 该用户已被删除
发表于 2002-7-30 17:30:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表