当前位置: 代码迷 >> C语言 >> 一个奇怪的问题
  详细解决方案

一个奇怪的问题

热度:94   发布时间:2005-12-17 15:33:00.0
一个奇怪的问题

为什么用了scanf()语句,字符串就不能正常输入了呢?源代码如下:
#include "stdio.h"
#include "string.h"
main()
{
int i,j,n;
char str[20][20];
clrscr();
printf("请输入要输入的字符串数量:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("请输入第%d个字符串:\n",i);
gets(str[i]);
}
printf("\n\n");
for(i=1;i<=n;i++)
{
printf("str[%d]:\n",i);
puts(str[i]);
}
}
比如:从键盘输入n=2;结果用gets()就只能得到str[2],无法得到str[1],这是什么原因呢?请高手指点

搜索更多相关的解决方案: 键盘  include  源代码  字符串  

----------------解决方案--------------------------------------------------------

你输入的2,数组的下标只有0,1,如何得到2的?????


----------------解决方案--------------------------------------------------------
我定义的二维数组是str[20][20],很大了,由用户确定自己输入几个字符串,如果用户输入2,那就由gets()得到str[1]和str[2],不用str[0]和str[3]到str[19]的所有数组,这样说清楚了吗?
----------------解决方案--------------------------------------------------------
二楼显然没仔细看程序嘛
----------------解决方案--------------------------------------------------------

#include "stdio.h"
#include "string.h"
#include "conio.h"
main()
{
int i,j,n;
char str[20][20];
void clrscr();
printf("请输入要输入的字符串的数量:\n");
scanf("%d",&n);
getch();//这里接收你输入的回车
for(i=1;i<=n;i++)
{
printf("请输入第%d个字符串:\n",i);
gets(str[i]);
}
printf("\n\n");
for(i=1;i<=n;i++)
{
printf("str[%d]:\n",i);
puts(str[i]);
}
}


----------------解决方案--------------------------------------------------------
谢谢楼上的,但是依然不行,不信你运行运行?
----------------解决方案--------------------------------------------------------

那就是你编译器的问题了吧,我在C-FREE下运行没问题


----------------解决方案--------------------------------------------------------
我用的是TC2.0。你说的软件大吗?能发给我吗?
----------------解决方案--------------------------------------------------------
我找到下载了,非常感谢,要是有问题再来请教哈
----------------解决方案--------------------------------------------------------
又一个问题出来了,在c-free里用不了clrscr()这个函数呢?我已经用了
#include "conio.h"了
----------------解决方案--------------------------------------------------------
  相关解决方案