C语言初学妹子求大神解决程序错误问题,求正解

/*分别用while、do-while和for循环求:1!+2!+。。。+n!。
设计一个主界面,实现连续读入不同的n值并求解;*/
#include //用while实现
int main()
{
while(1)
{
int i=1,j=1,s=0,m=1;
int n;
printf("请输入n的值:\n");
scanf("%d\n",&n);
if(n<1)
break;
else
{
s=0;
while(j<=n)
{
while(i<=j)
{
m=m*i;
i++;
}
s+=m;
j++;
}
printf("阶乘的和为:%d\n",s);
}
}
return 0;
}

scanf("%d\n",&n);把\n去掉程序正常的吗,其他循环逻辑一样的吗

代码写的好乱图片说明

while (j<=n)
{
i=1;
m=1;
while(i<=j)

代码看的头大图片说明图片说明图片说明图片说明图片说明

#include "stdio.h"
#include "conio.h"
main()
{

int i;
printf("请输入i的值:\n");
scanf("%d\n",&i);
float n,s=0,t=1;

for(n=1;n<=i;n++)

{

t*=n; s+=t;

}

printf("1+2!+3!...+N!=%e\n",s);

getch();
}

1.scanf后面\n是不应该加的。。
2.m和i用完之后都没有回复初始值。。
/*分别用while、do-while和for循环求:1!+2!+。。。+n!。
设计一个主界面,实现连续读入不同的n值并求解;*/

#include //用while实现
int main()
{
while(1)
{
int i=1,j=1,s=0,m=1;
int n;
printf("请输入n的值:\n");
scanf("%d",&n);

    if(n<1)
    break;
    else
    {
        s=0;
        while(j<=n)
        {
            while(i<=j)
            {
                m=m*i;
                i++;
            }
            s+=m;
            j++;
            m=1;
            i=1;
        }
        printf("阶乘的和为:%d\n",s);
    }
}
return 0;

}

#include "stdio.h" //用while实现
int main()
{
int temp_num = 1,cur_num=1, whole_result=0,temp_result=1;
int whole_num;
printf("请输入n的值:\n");
scanf("%u", &whole_num);
if(whole_num < 1)
{
return 0;
}
else
{
while(cur_num <= whole_num)
{
while(temp_num<=cur_num)
{
temp_result = temp_result*temp_num;
temp_num++;
}
whole_result += temp_result;
cur_num++;
temp_result=1;
printf("cur_num:%u\n", cur_num);
temp_num = 1;
}
printf("阶乘的和为:%d\n", whole_result);
}

return 0;

}

#include
#include
using namespace std;
int f(int num)
{
int n=1;
int i=1;
while(i<=num)
{
n*=i++;
}
return n;
}
int f_(int n)
{
int i=1;
int num=0;
while(i<=n)
num+=f(i++);
return num;
}

int f2(int num)
{
int n=1;
int i=1;
do
{
n*=i++;
}while(i<=num);
return n;
}
int f2_(int n)
{
int i=1;
int num=0;
do{
num+=f(i++);
}while(i<=n);

return num;

}

int f3(int num)
{
int n=1;
int i=1;
for(i=1;i<=num;i++)
n*=i;
return n;
}
int f3_(int n)
{

int num=0;
for(int i=1;i<=n;i++)
{
num+=f3(i);
}
return num;
}

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
int n;
cin>>n;
cout <<"||"<<endl;
cout<<f_(n)<<endl;
cout<<f2_(n)<<endl;
cout<<f3_(n)<<endl;
return a.exec();
}

项目建成c++了,你可以看下思路。。

int main()
{
int temp_num = 1,cur_num=1, whole_result=0,temp_result=1;
int whole_num;
printf("请输入n的值:\n");
scanf("%u", &whole_num);
if(whole_num < 1)
{
return 0;
}
else
{
while(cur_num <= whole_num)
{
while(temp_num<=cur_num)
{
temp_result = temp_result*temp_num;
temp_num++;
}
whole_result += temp_result;
cur_num++;
temp_result=1;
printf("cur_num:%u\n", cur_num);
temp_num = 1;
}
printf("阶乘的和为:%d\n", whole_result);
}

return 0;
}