奶茶雀氏好喝 2021-05-31 16:18 采纳率: 100%
浏览 117
已采纳

做题用pow函数出现点问题,准确说是整型和浮点型数据有点混乱

/*
求Sn=a+aa+aaa+aa...a(n个a),其中a是一个数字,n表示a的位数,n由键盘输入
*/
#include<stdio.h>
#include<math.h>
int main()
{
    int Sn=0,a,n,i;
    printf("输入a、n的值:\n");
    scanf("%d%d",&a,&n);
    for(i=1;i<=n;i++)
        {
            a=(pow((float)10,i)-1.0)/9.0*a;
            Sn+=a;
        }
    printf("Sn=%d",Sn);
    return 0;
}

运行结果:输入2_1,2_2时,Sn=2和Sn=4(正确的),输入2_3,Sn=2466,输入2_4,Sn=2715528(之后都是错误的)

书上的方法是用a*10,然后不断循环,我想用pow函数,但是就出现上述问题。求解。

  • 写回答

5条回答 默认 最新

  • 关注
    #include<stdio.h>
    #include<math.h>
    int main()
    {
        int a,t,n,i;
        printf("输入a、n的值:\n");
        scanf("%d%d",&a,&n);
        double Sn=0.0;
        for(i=1;i<=n;i++)
            {
                a=(pow(10,(float)i)-1.0)/9.0*a;
                Sn+=a;
            }
        printf("Sn=%.0lf",Sn);
        return 0;
    }

    int类型在c语言中是2个字节,你输入的数超出范围了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来