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

做题用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条)

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波