【发布时间】:2016-05-25 12:04:43
【问题描述】:
我正在解决一个问题。问题是这样的:吉尔和荣格喜欢幸运数字。幸运数字显然是 4 & 7,如果正数的十进制表示包含 4 & 7,则认为该正整数是幸运的。例如444、474 和7 是幸运的,而4773 和89 是不幸运的。
Jill 想通过丢弃整数中的非幸运数字来将非幸运整数转换为幸运整数。例如,号码767456 的答案是774,号码9974 的答案是74,1775667 的答案是777。
Jill 会给你两个号码a 和一个幸运号码b。找到一个最小正整数c (c > a),它将包含一个幸运整数“b”。
输入格式:
整数t:测试用例数。跟随两个整数 a 和 b (1 <= a, b <= 100000)。 b 总是一个幸运的整数。
输出格式:
打印包含幸运数字b的最小数字c
示例输入
1
47 74
样本输出
74
我只是一个C初学者。我写了以下代码:
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
int r1, r2, c1, c2, d1, d2, a, b, c, d, n, x, i, flag = 0;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d%d%d%d%d%d", &r1, &r2, &c1, &c2, &d1, &d2);
for (a = 0; a < 25; a++)
for (b = 0; b < 25; b++)
for (c = 0; c < 25; c++)
for (d = 0; d < 25; d++) {
if ((a + b == r1) && (c + d == r2) &&
(a + c == c1) && (b + d == c2) &&
(a + d == d1) && (c + b == d2) &&
a > 0 && b > 0 && c > 0 && d > 0) {
printf("YES\n");
break;
} else
flag = 1;
}
if (flag == 1)
printf("NO\n");
}
return 0;
}
我收到以下错误。请帮帮我。
solution.cc: In function 'int main()':
solution.cc:10:19: warning: ignoring return value of 'int scanf(const char*, ...)',
declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&n);
^
solution.cc:13:25: warning: ignoring return value of 'int scanf(const char*, ...)',
declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&a,&b);
^
【问题讨论】:
-
这些是警告,而不是错误。它们几乎是不言自明的。您没有检查
scanf()的返回值,因此如果出现错误,您的程序将不会处理它。 -
检查返回值是什么?对不起,如果我的问题听起来很愚蠢。我是初学者。
-
每个系统调用都有返回值。就像任何功能一样。它们具有特定的含义。与
n = printf("hello");一样,在此语句执行后,n将包含值5。因为printf()返回打印的字符数。希望你能从中得到提示。 -
你的代码是纯C代码,不要使用C++编译器和
cc文件扩展名。
标签: c++ c time compilation scanf