你能告诉我下一个代码有什么问题吗?我收到消息: 警告:忽略'scanf'的返回值,使用属性warn_unused_result [-Wunused-result]声明。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
long long int n, k, i, *a, j, w = 0, nije = 1;
scanf("%lld", &n);
scanf("%lld", &k);
a = malloc(n*sizeof(long long int));
for (i = 0; i < n; i++)
scanf("%lld", &a[i]);
for (j = 2; j <= k; j++) {
if (k % j == 0)
{
nije = 1;
for (i = 0; i < n; i++) {
if (a[i] % j == 0) {
nije = 0;
break;
}
}
if (nije == 1)
w++;
}
}
a = NULL;
printf("%lld", w);
return 0;
}
答案 0 :(得分:4)
至少您忘记将w
初始化为零,因此其值可以等于任意数字,并且b[w]
的第一次调用会导致分段错误。