Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C、 变量初始化_C_Variables - Fatal编程技术网

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的手册页。它返回一个值,您应该检查编译时使用的是什么?