注册 登录
编程论坛 C语言论坛

求助 一个循环题出问题

几个一 发布于 2020-11-23 20:51, 1282 次点击
#include<stdio.h>
int main()
{
    double s=0,t=1,n,q;
    scanf("%f",&q);
    for(n=1;n<=q;n++)
    {t=t+n;
    s=s+t;
    }
    printf("1!+2!···%f",s);
}
我才能够键盘输入一个值4,不行。
后来我将scanf中的%f换为%d  且double q换为int q又可以了
这是为什么?
#include<stdio.h>
int main()
{
    double s=0,t=1,n;
    int q;
    scanf("%d",&q);
    for(n=1;n<=q;n++)
    {t=t*n;
    s=s+t;
    }
    printf("1!+2!···%f",s);
}
3 回复
#2
请输入密码2020-11-23 22:54
float对应%f。
double对应%lf。
#3
风过无痕19892020-11-24 00:14
回复 楼主 几个一
程序代码:

#include<stdio.h>
int main()
{
    double s = 0,t = 1,n,q;
    scanf("%lf",&q);        // 这里是 lf,不是 f
    for(n=1;n <= q;n++)
    {t =t * n;              // 这里是乘,不是加
    s += t;
    }
    printf("1! + 2!···+ n! = \n",s);
}
#4
几个一2020-11-24 12:37
非常感谢楼上两位
1