我正在解决一个问题。问题是这样的:Jill&荣格喜欢幸运数字。幸运数字显然是4& 7,如果正数的十进制表示包含4& 7,正整数被认为是幸运的。例如444
,474
和7
是幸运的,其中4773
和89
并不幸运。
Jill希望通过丢弃整数中的非幸运数字,将非幸运整数转换为幸运整数。例如,数字767456
的答案为774
,数字9974
的答案为74
,1775667
的答案为777
。
吉尔会给你两个数字a
和一个幸运数字b
。找到最小正整数 c
(c > a
),其中包含一个幸运整数' b'。
输入格式:
整数t
:测试用例数。遵循两个整数a
和b
(1 <= a
,b <= 100000
)。 b
永远是一个幸运的整数。
输出格式:
打印包含幸运号码c
b
示例输入
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);
^
答案 0 :(得分:0)
如果您在scanf
期望时不输入数字,则会返回少量成功的转化次数,而不是您期望的次数。忽略此返回值不是语法错误,但它非常草率,因为如果输入的数字不足,程序将以未定义的方式运行。
以这种方式修复代码:
if (scanf("%d", &n) != 1) {
printf("expected number\n");
return 1;
}
for (i = 0; i < n; i++) {
if (scanf("%d%d%d%d%d%d", &r1, &r2, &c1, &c2, &d1, &d2) != 6) {
printf("missing numbers\n");
return 1;
}
...
此外,其余代码似乎与幸运数字问题没有任何联系。