鱼C论坛

 找回密码
 立即注册
查看: 1125|回复: 4

[已解决]能运行结果一直错 忧伤

[复制链接]
发表于 2020-2-15 00:04:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
验算过好多遍,感觉没什么问题,但结果不正确
希望就在这个基础上改改,感谢!

求Sn=a+aa+aaa+...+aaa...a(n个a)之值,其中a是一个数字,n表示a的位数,n由键盘输入。
例:2+22+222+2222(此时n=4)

  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5.     int a,n,S=0;
  6.     int i;
  7.     printf("输入数字a的值(0~9的一个数):");
  8.     scanf("%d",&a);
  9.     printf("输入想加到的位数n的值(整数):");
  10.     scanf("%d",&n);

  11.     for(i=0; i<=n-1; i++)
  12.     {
  13.         S+=a*pow(10,i)*(n-i); //i是10的指数,(n-i)是几个相同的数
  14.     }
  15.     printf("\n%d",S);
  16.     return 0;
  17. }
复制代码

大概是这样

                                            4                      3                        2                   1         (n-i)
2                2                        2*10^0
22                2+20                        2*10^0  +  2*10^1
222                2+20+200                2*10^0  +  2*10^1  +  2*10^2
2222                2+20+200+2000        ...  +     ...       +      ...      +        ...               
最佳答案
2020-2-15 00:24:31
  1.     int a,n,S,s;
  2.         S=s=0;
  3.     printf("输入数字a的值(0~9的一个数):");
  4.     scanf("%d",&a);
  5.     printf("输入想加到的位数n的值(整数):");
  6.     scanf("%d",&n);
  7.         for(int j=0;j<n;j++){
  8.                  for(int i=0; i<=j; i++)
  9.                  {
  10.                         s+=a*(int)pow(10,i); //i是10的指数
  11.                  }
  12.                  S+=s;
  13.                  s=0;
  14.         }
  15.     printf("\n%d",S);
复制代码

改成这样子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-15 00:24:31 | 显示全部楼层    本楼为最佳答案   
  1.     int a,n,S,s;
  2.         S=s=0;
  3.     printf("输入数字a的值(0~9的一个数):");
  4.     scanf("%d",&a);
  5.     printf("输入想加到的位数n的值(整数):");
  6.     scanf("%d",&n);
  7.         for(int j=0;j<n;j++){
  8.                  for(int i=0; i<=j; i++)
  9.                  {
  10.                         s+=a*(int)pow(10,i); //i是10的指数
  11.                  }
  12.                  S+=s;
  13.                  s=0;
  14.         }
  15.     printf("\n%d",S);
复制代码

改成这样子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-15 10:17:33 | 显示全部楼层
本帖最后由 龙龙龙龙龙龙 于 2020-2-15 10:21 编辑


害 我懂了你的拿codeblocks 试了也是结果错,然后灵光一现换了个编译器,就对了,我那个也对了
但还是感谢,又学到了,可是为什么会这样?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-15 10:23:24 | 显示全部楼层
#include <stdio.h>
#include <math.h>
int main()
{
    int a,n,S=0,j;
    int i;
    printf("输入数字a的值(0~9的一个数):");
    scanf("%d",&a);
    printf("输入想加到的位数n的值(整数):");
    scanf("%d",&n);

    for(i=0; i<=n-1; i++)
    {
                for(j=0;j<=i;j++)
        S+=a*pow(10,j); //i是10的指数,(n-i)是几个相同的数
    }
    printf("%d\n",S);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-15 10:38:09 | 显示全部楼层
莫谦 发表于 2020-2-15 10:23
#include
#include
int main()

了解 感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-5 21:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表