今天犯了一个很傻的问题,记录一下。
Lint’Code
题目:
错误代码
#include <stdio.h>
int function(int a, int b, int c, int x, int y) {
// Write your code here
printf("In function: %d\n", x += y);
x -= y;
return (a * (x + y) * (x + y) + b * (x + y) + c);
}
int main() {
// Write your code here
int a = 0, b = 0, c = 0, x = 0, y = 0, n = 0;
scanf("%d,%d,%d,%d,%d\n", &a, &b, &c, &x, &y);
printf("In main: %d\n", x);
n = function(a, b, c, x, y);
printf("Result: %d\n", n);
printf("Out function: %d\n", x);
return 0;
}
在DEV运行发现结束不了,最后用字符结束符号‘\0’ 才结束输入。
在线编译器上面,直接错误:
说一下错误原因:
scanf("%d,%d,%d,%d,%d\n", &a, &b, &c, &x, &y);
1、scanf()多次输入时,中间一般不要加逗号;
2、写scanf()可能受printf()影响会写一个换行符号\n,这是不允许的。
修正为:
scanf("%d %d %d %d,%d", &a, &b, &c, &x, &y);