我输入整数的时候,1~12得到的值都是对的,从13开始得数就不对了,我知道是整型变量存储的数据超出范围了,应该怎么处理?下面是代码。
#include <stdio.h>
int main()
{
int m=1, k, n, o=1; //n:公式中的n; m:动态的结果; o:执行的次数 k:动态的被乘数
printf("请输入一个n的值:\n");

展开全部
收起
6回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Genesis

    20人对此回答表示赞同

    将int m=1定义为long m=1看看。
    展开
    20
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Ken不得鸡

    20人对此回答表示赞同

    #include <stdio.h>
    int main()
    {
    int k, n, o=1; //n:公式n; m:态结; o:执行数 k:态乘数
    double m=1; //用double类型可以支持的数据多些
    printf("请输入n值: ");
    scanf
    展开
    20
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 萌猫君

    17人对此回答表示赞同

    #include <stdio.h>
    int main()
    {
    int k, n, o=1;
    float m=1; //n:公式中的n; m:动态的结果; o:执行的次数 k:动态的被乘数
    printf("请输入一个n的值:\n");
    scanf("%d", &n);
    int njy=n-1;
    展开
    17
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 万发财

    15人对此回答表示赞同

    变成无符号的,%d变成%ud.int前面加个无符号的英文(我不知道咋拼.我用的时候都是复制的)VC++中long和int的大小一样.如果不是VC++你就加个long long(%llu).如果是VC++,你用无符号long double.
    展开
    15
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • betty

    12人对此回答表示赞同

    简单的办法就是用数组来解决
    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 你最珍贵

    12人对此回答表示赞同

    知道是数据超出存储范围的话就将存储最终结果的变量m定义为unsigned int
    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部