C、 变量初始化
这段代码应该读取一定数量的数字,然后打印其中有多少可以被除数变量整除,但是当我这样写时,似乎出现了某种问题C、 变量初始化,c,variables,C,Variables,这段代码应该读取一定数量的数字,然后打印其中有多少可以被除数变量整除,但是当我这样写时,似乎出现了某种问题 #include <stdio.h> int main() { long repeat; int divisor; long long t; long result = 0; scanf("%d", &repeat); scanf("%d", &divisor); for (long i = 0;
#include <stdio.h>
int main()
{
long repeat;
int divisor;
long long t;
long result = 0;
scanf("%d", &repeat);
scanf("%d", &divisor);
for (long i = 0; i < repeat; i++)
{
scanf("%d", &t);
if (t % divisor == 0)
{
result++;
}
}
printf("%d",result);
return 0;
}
#包括
int main()
{
长重复;
整数除数;
长t;
长结果=0;
scanf(“%d”,重复(&R));
scanf(“%d”和除数);
for(长i=0;i
但是,当我在开始时将所有变量设置为0时,效果很好。有人能告诉我第一次实现有什么问题吗
#include <stdio.h>
int main()
{
long repeat = 0;
int divisor = 0;
long long t = 0;
long result = 0;
scanf("%d", &repeat);
scanf("%d", &divisor);
for (long i = 0; i < repeat; i++)
{
scanf("%d", &t);
if (t % divisor == 0)
{
result++;
}
}
printf("%d",result);
return 0;
}
#包括
int main()
{
长重复=0;
整数除数=0;
长t=0;
长结果=0;
scanf(“%d”,重复(&R));
scanf(“%d”和除数);
for(长i=0;i
不是某个人,而是某件事-GCC 7.2可以:
% gcc div.c -Wall -Wextra
div.c: In function ‘main’:
div.c:10:13: warning: format ‘%d’ expects argument of type ‘int *’,
but argument 2 has type ‘long int *’ [-Wformat=]
scanf("%d", &repeat);
~^ ~~~~~~~
%ld
div.c:16:17: warning: format ‘%d’ expects argument of type ‘int *’,
but argument 2 has type ‘long long int *’ [-Wformat=]
scanf("%d", &t);
~^ ~~
%lld
div.c:23:14: warning: format ‘%d’ expects argument of type ‘int’,
but argument 2 has type ‘long int’ [-Wformat=]
printf("%d",result);
~^
%ld
它还告诉下面的你应该使用什么来代替:%ld
,%lld
和%ld
。由于您没有使用正确的长度修饰符,行为是未定义的,这使您认为您通过使用零初始化变量来“修复”程序
此外,请记住检查
scanf
的返回值,如果输入了无效的内容,则需要放弃行的其余部分;只需在程序中输入hello
即可使其挂起。long-long-t。。。。scanf(“%d”、&t)代码>应生成警告。确保启用所有警告并报告结果。这将节省您的时间。”…似乎存在某种问题。”这不是很好的描述。什么样的问题?错误?意外输出?很难确定哪些可能是错误的,尤其是当您没有显示任何输入值的示例时。结果总是0。请阅读scanf的手册页。它返回一个值,您应该检查编译时使用的是什么?