这两个代码有啥区别?
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d %d ", &a, &b);
int sum = a + b;
printf("sum=%d\n", sum);
return 0;
}
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int sum = 0;
scanf("%d %d\n", &a, &b);
sum = a + b;
printf("sum=%d\n", sum);
return 0;
}
没有本质的区别,唯一是 scanf
scanf("%d%d", &a, &b);
推荐这样写
【以下回答由 GPT 生成】
这两个代码片段的区别在于scanf
函数的参数中"%d %d"
和"%d %d\n"
的区别。
代码片段一中的scanf
函数使用"%d %d"
作为格式字符串,表示读取两个整数,并且这两个整数之间可以使用一个或多个空格进行分隔。输入的整数不需要以换行符结束。
代码片段二中的scanf
函数使用"%d %d\n"
作为格式字符串,表示读取两个整数,并且这两个整数之间可以使用一个或多个空格进行分隔。不同的是,这个格式字符串最后还包含一个换行符,表示输入的整数需要以换行符结束。
以输入"1 2"为例,代码片段一会将1赋值给变量a
,2赋值给变量b
,而代码片段二会将1赋值给变量a
,2赋值给变量b
,并且读取到换行符后停止。
综上所述,这两个代码片段在scanf
函数的处理方式上有所不同,代码片段一不要求输入结束符号,而代码片段二要求输入时以换行符结束。
【相关推荐】