一句话概括:
%d之间加空格,那么输入的空格不会对结果产生影响,如果%d之间加了空格,则很有可能会对最终的结果产生影响。
案例演示:
代码实现:
(1)不加空格的(结果不正确)
#include <stdio.h>
#include <stdlib.h>
int main() {
char arr[3];
// 在 %c 之间添加空格来跳过空白字符
scanf(" %c%c%c", &arr[0], &arr[1], &arr[2]);
char max = arr[0];
for (int i = 0; i < 3; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
printf("%c\n", max);
return 0;
}
它会读取一个字符,包括空格和换行符。当你输入"a b c"时,实际上你输入的是字符'a', ' ', 'b', ' ', 'c'和换行符。因此,arr[0]
被赋值为'a',arr[1]
被赋值为' '(空格),arr[2]
被赋值为'b',因此比较下来得到的最大值为b.
(2)加空格的(结果正确)
#include <stdio.h>
#include <stdlib.h>
int main() {
char arr[3];
// 在 %c 之间添加空格来跳过空白字符
scanf(" %c %c %c", &arr[0], &arr[1], &arr[2]);
char max = arr[0];
for (int i = 0; i < 3; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
printf("%c\n", max);
return 0;
}
好啦,希望能够帮助到大家!