-
该问题的要求是一次读取多行,输入EOF完成后,一次输出多行。
您的 ** 是处理和输出读取的每一行。
每一行都应读入 2D 字符数组,然后统一输出。
#include
#include
int main()
int i, j, s, l = 0;
char a[85][100];
while (gets(a[l]) = null)s = strlen(a[l]);
for (i = 0; i < s; i++)if (a[l][i] == ' ')
for (j = i; j < s; j++)a[l][j] = a[l][j+1];
s--;i--;
l++;for (i = 0; i < l; i++)puts(a[i]);
return 0;
编译通过,结果如下:
hello world
nice to see you
上面的 ab x 是输入,下面是输出)。
helloworld
nicetoseeyou
Abx希望,谢谢
-
请尝试此功能。
#include
#include
int main()
int i, j, s;
char a[5];
while (gets_s(a) != null)s = strlen(a);
for (i = 0; i < s;)
if (a[i] == ' ')
for (j = i; j < s; j++)a[j] = a[j + 1];
s--;i--;
puts(a);
i++;return 0;
-
A 是一个无符号整数,最大值是 65535,是 0xffff,二进制是11111111,但是当你加 1 时,也就是当它应该是 65536 时,A 溢出,应该是0x10000,但 A 只有 2 个字节大小,系统只能识别为 0x0000,就变成了 0, 不知道你能不能理解。
-
主要功能。
main()
因为 a 是无符号段整形的变量。
b 是有符号整数的变量。
您可以查看不同整形变量的值范围。
只是得到它。 事实上,这是整形手术的泛滥。
-
让我向你解释一下:
#include
main()
为什么结果为零?
其实很简单:
事情是这样的:有符号变量的值范围是 -32678 32767,无符号变量的值范围是 0 65535
而你这里的变量是 65536,所以数据溢出了,int 是两个字节,16 位,那么在内存中它变成了 10000000000000000000000,1 会放到下一个字节,表示 int 的字节会变成全零,所以结果是全零。
很荣幸为您答疑解惑,祝您生活幸福美满
-
看起来还不错,怎么了? 只是输入是输入 1 空格 2 才能正确显示程序。
-
输出语句有问题:%c 更改为 %s
呵呵,这个哥哥和我几个月前的样子很像。 在学习 C 之前,我认为 C 应该能够实现任何事情。 但是在学习之后,我发现我离Windows还很远。 >>>More