多多汉堡肉 发表于 2018-11-30 19:14:28

大一女 请问一个关于循环的小问题,谢谢好心人

题目是sn=a+aa+aaa+aaaa......+n个a 为止:
比如a=2;n=5
那么sn的值等于
2+22+222+2222+22222
=24690
#include<stdio.h>
int main()
{
        int n,a,j,tn,sn;
        tn=0;
        sn=0;
        printf("a,n= : \n");
        scanf("%d,%d",&a,&n);
        for (j=1;j<=n;j++)
        {
                tn=tn+a;
                sn=sn+a;
                a=a*10;
        }
        printf("%d\n",sn);
        return 0;
}



为什么无论我输入什么它的返回值都是0啊?
我试过2,5

先输入一个2再加一个逗号再输5
出来的值为0
为什么啊?
请问一下好心人,我错在哪里了?
谢谢!

rencaixiaomeng 发表于 2018-11-30 19:32:05

你的逗号是不是输入成中文的逗号,改成英文的逗号就可以正常输出,但是最终输出的是n个a,不是你想要的相加结果
#include<stdio.h>
int main()
{
        int n, a, j, tn, sn;
        tn = 0;
        sn = 0;
        printf("a,n= : \n");
        scanf("%d,%d", &a, &n);
        for (j = 1;j <= n;j++)
        {
                tn = tn + a;
                sn = sn + tn;   //这行a修改成tn就可以了
                a = a * 10;
        }
        printf("%d\n", sn);
        return 0;
}

wongyusing 发表于 2018-11-30 19:34:27

不会C,不过代码看起来好像少了个分号,导致直接打印sn

多多汉堡肉 发表于 2018-11-30 19:41:02

rencaixiaomeng 发表于 2018-11-30 19:32
你的逗号是不是输入成中文的逗号,改成英文的逗号就可以正常输出,但是最终输出的是n个a,不是你想要的相加 ...

谢谢你!!!我改过来了,你是正确的!{:10_297:}

umaru 发表于 2018-11-30 20:52:20

哇,来迟一步,多好的机会被抢走了。{:10_266:}
页: [1]
查看完整版本: 大一女 请问一个关于循环的小问题,谢谢好心人