你的scanf函数中,不应该是&d,而应该是%d,第二个参数n也应该加上符号&,另外,代码中还有其它的一些错误,我改了一下,祥见配图。
scanf(%d,%d,&a,&n);这句话分开写就好了, scanf(%d,&a);scanf(%d,&n);因为你输入a以后会按下回车,这时这个回车符号就被赋给了n,所以就会有问题,你分开写就不存在这个问题了,你的代码没问题。
t中依次保存的是Sn的每一项,即a、aa、aaa...,只要将所有的t加起来,就是Sn的结果,保存在s里。
输入一个加数的项数,不要太大,最大19,再大就溢出了.r+=f1(2,i);中的2可以按a的值取。就算用了浮点型,这种问题还是会溢出,一直加下去,s→∞,有什么意义!大家不要再加答案了,这种问题就是一个恶作剧。
scanf(%d %d,&a,&n);b=a;for(i=0;i=n-1;i++){ c=c+b;b=b*10+a; //原来的a=a*10+a ,当循环第2次时a已不是个位数了,所以出错。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
1、t中依次保存的是Sn的每一项,即a、aa、aaa...,只要将所有的t加起来,就是Sn的结果,保存在s里。
2、sum = a + aa + aaa + …… + aa...a(共n个a)其中,aa...a表示a重复n次。为了方便计算,我们可以将每一项拆开来单独计算,然后将它们相加。
3、格式错误:scanf(%d,%d,a,n);应该是scanf(%d,%d,&a,&n);逻辑错误:a=a+a*10,a的值变了,不再是原先输入的a。修改方法:格式错误按C语言要求的格式修改。逻辑错误引入新的变量k解决。
4、求Sn=a+aa+aaa+...+aaa...a(n个a)之值,其中a是一个数字。例如;2+22+222+2222+22222(此时n=5),n由键盘输入。
5、scanf(%d,%d,&a,&n);这句话分开写就好了,scanf(%d,&a);scanf(%d,&n);因为你输入a以后会按下回车,这时这个回车符号就被赋给了n,所以就会有问题,你分开写就不存在这个问题了,你的代码没问题。
1、t中依次保存的是Sn的每一项,即a、aa、aaa...,只要将所有的t加起来,就是Sn的结果,保存在s里。
2、scanf(%d,%d,&a,&n);这句话分开写就好了,scanf(%d,&a);scanf(%d,&n);因为你输入a以后会按下回车,这时这个回车符号就被赋给了n,所以就会有问题,你分开写就不存在这个问题了,你的代码没问题。
1、scanf(%d,%d,&a,&n);这句话分开写就好了,scanf(%d,&a);scanf(%d,&n);因为你输入a以后会按下回车,这时这个回车符号就被赋给了n,所以就会有问题,你分开写就不存在这个问题了,你的代码没问题。
关于如何用c语言来求sn,以及怎么用c语言求的相关信息分享结束,感谢你的耐心阅读,希望对你有所帮助。
上一篇
一个c语言程序从编写成功
下一篇
c语言c简单爱心