关于C语言的纠结问题

来源:百度知道 编辑:UC知道 时间:2024/04/28 06:57:35
#include<stdio.h>
#include<string.h>
void main()
{
char s1[50][2][100];int n,i,j;
scanf("%d",&n);
for(i=0;i<n;i++) {
for(j=0;j<2;j=j+1)
{
gets(s1[i][j]);
}
scanf("\n");
}

for(i=0;i<n;i++) / {
for(j=0;j<=1;j++)
{
puts(s1[i][j]);
}
}
}
这是程序的一部分,目地是先输入一个整数n,确定组数,再分别输入字符串,如:
3
aabbccdd(回车)
aabbccddd(回车)
(回车)
ssddffgg(回车)
sssddffgg(回车)
(回车)
qwertyuiop(回车)
poiuytrewq(回车)

p.s.括号中是我录入时的操作!

我想的得到的结果是把我输入的原样输出:
但是最终结果是结果是:我输入到倒数第二行qwertyuiop按回车时,录入就结束了,没有输入最后一行,然后系统给的结果是:

aabbccdd
aabbccddd

ssddffgg
sssddffgg
press any key to continue

只有两组!请牛人回答一下这是为什么??我听同学说是gets在循环赋值时有
小bug,是这样的吗?请具体一点,毕竟还是新手!谢谢
程序15行那个“/”本是没有的!!

for(i=0;i<n;i++) {
printf(("输入第%d组数据\n",i+1);
for(j=0;j<2;j=j+1)
{
gets(s1[i][j]);
}
}

去掉 scanf("\n"); 如果一定要加回车,可以用printf来实现。
scanf("\n");这样的写法是错误的