关于##include#的问题,如何解决?

大伙看看我这哪里错了

img

#include 
#include 
int main()
{
 int i , j ;
 long long int x , y ;
 for ( y = 0 , i = 1 ; i <=20 ; i++ )
    {
    for ( x = 1 , j = 1 ; j <=i ; j++ )
     {
        x *= j ;
     } 
     y += x ; 
    }
    printf( "%ld" , y ) ; 
    return 0;
}

该回答引用GPTᴼᴾᴱᴺᴬᴵ
您的代码看起来没有错误。然而,您可能需要注意以下几点:

1.在使用printf()函数输出整型变量时,建议使用%lld作为格式说明符,因为y是一个long long int类型的变量。因此,您的代码应该是这样的:

printf("%lld", y);

2.您的循环变量y和x都是long long int类型,但是循环计数器i和j只是int类型。因此,当i和j的值增大到一定程度时,x和y可能会溢出。您可以使用unsigned long long int类型来避免这种情况。例如:

#include <stdio.h>
#include <math.h>
int main()
{
    int i , j ;
    unsigned long long int x , y ;
    for ( y = 0 , i = 1 ; i <=20 ; i++ )
    {
        for ( x = 1 , j = 1 ; j <=i ; j++ )
        {
            x *= j ;
        } 
        y += x ; 
    }
    printf("%llu", y) ; 
    return 0;
}

这应该能够避免溢出错误。

希望这可以帮助您解决问题!

看看你的程序要做什么,是不是x y没有初始化

有什么问题?



#include <stdio.h>
#include <math.h>
int main()
{
 int i , j ;
 long x , y ;
 for ( y = 0 , i = 1 ; i <= 20 ; i++ )
    {
    for ( x = 1 , j = 1 ; j <=i ; j++ )
     {
        x *= j ;
     } 
     y += x ; 
    }
    printf( "%ld" , y ) ; 
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^