【发布时间】:2016-10-27 19:42:10
【问题描述】:
第一个代码扫描三个字符串,然后再次打印出这些字符串。第一个代码工作正常并打印出字符串,如第一个图像链接中所示。
在第二个代码中,字符串的数量必须是可变的。因此我扫描一个整数 k,并将这个整数放入 for 循环中。我希望当我扫描 2 时这会产生相同的结果,但它没有相同的效果。相反,它只扫描 2 个字符串,并在打印出字符串之前打印出一些符号,如第二个图像链接中所示。有人对此有解释吗?
#include <stdio.h>
#include <stdlib.h>
#define maxstring 100
#define maxc 10
int main()
{
char c, text[maxc][maxstring];
int i, j, n, k;
for(j=0; j<=2; j++)
{
for(i=0; (c=getchar())!='\n'; i++)
{
text[j][i]=c;
}
}
n=i;
for(j=0; j<=2; j++)
{
for(i=0; i<n; i++)
{
putchar(text[j][i]);
}
}
return 0;
}
第二个代码:
#include <stdio.h>
#include <stdlib.h>
#define maxstring 100
#define maxc 10
int main()
{
char c, text[maxc][maxstring];
int i, j, n, k;
printf("Enter amount of strings:");
scanf("%d", &k);
for(j=0; j<=k; j++)
{
for(i=0; (c=getchar())!='\n'; i++)
{
text[j][i]=c;
}
}
n=i;
for(j=0; j<=k; j++)
{
for(i=0; i<n; i++)
{
putchar(text[j][i]);
}
}
return 0;
}
【问题讨论】:
-
c必须是int。 -
第二个代码的输出,位于第一个代码上方的图像链接中。第一个代码的输出图像链接在第二个代码下。对不起..
标签: c string multidimensional-array