很基础的题目,课后作业的一道题,想了好久实在是卡住了,不知道怎么会出问题。要求如题,代码如下。
难道不是先进行内层循环再外层的吗?结果输入3,得出30。输入4,得出744,费解啊...
#include<stdio.h>
void main()
{int n,m,sum=1,end=0;
 scanf("%d",&n);
 for(;n>0;n--)
 {for(m=n;m>0;m--)
    {sum*=m;}
  end+=sum;
  
 }
 printf("%d\n",end);
}

解决方案 »

  1.   

    try
    #include<stdio.h>
    void main()
    {int n,m,end=0;
     scanf("%d",&n);
     for(;n>0;n--)
     sum=1;
     {for(m=n;m>0;m--)
      {sum*=m;}
      end+=sum;
       
     }
     printf("%d\n",end);
    }
      

  2.   

    X,放错位置了
    #include<stdio.h>
    void main()
    {int n,m,end=0;
     scanf("%d",&n);
     for(;n>0;n--)
     {
      sum=1;
      for(m=n;m>0;m--)
      {sum*=m;}
      end+=sum;
     }
     printf("%d\n",end);
    }
      

  3.   

    既然发到sql版来了,用sql写一个
    declare @n int,@m int,@sum int,@end int
    select @sum=1,@end=0;
    set @n=4;
    while @n>0
    begin
      set @m=@n;
      set @sum=1
      while @m>0
      begin
        set @sum=@sum*@m;
        set @m=@m-1;
      end
      set @n=@n-1;
      set @end=@end+@sum
    end
    print @end
      

  4.   


    我还纳闷怎么发到sql server版了呢。