C语言变量先初始化导致计算结果的不同。

#include<stdio.h>

int main()
{
    int i,j,N;
    int s;
    int sum=0;
    scanf("%d",&N);
    for(i=1;i<=N;i++)
    {
    	s=1;
        for(j=1;j<=i;j++)
        {
            
            s*=j;
        }
        sum+=s;
    }
    printf("%d",sum);
    return 0;
}

变量s在声明时初始化和在第一个循环时初始化,为什么会导致答案不同

s在for循环里是每次循环时都会初始化为1。 而你在for循环外面初始化s,因为只初始化1次,s值在for循环阶段一直会累计,sum的结果当然会不同。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632