一个c语言的程序~~请高手帮忙解答~~

来源:百度知道 编辑:UC知道 时间:2024/06/14 09:37:25
#include<stdio.h>
#include<math.h>
void main()
{
int i,a,n;
double x,s;
s=0;
x=0;
printf("请输入a和n的值:");
scanf("%d,%d",&a,&n);
for(i=1;i<=n;i++)
{
x=x+a;
s=s+x;
a=a*10;
}
printf("Sn=%d",s);
}

这个程序运行的结果总是0~~请问问题出在什么地方~~怎么样调试一下~~

最后 printf("Sn=%d",s); 中
改成 %f
你定义的s是double的,最后用%d显示就不行.

建议你scanf的时候把a,n的写两个scanf比较不容易错.

printf("Sn=%d",s);
定义的是float,那么输出也要float啊
所以printf("Sn=%f",s);

没什么问题拉
#include<math.h>
不过这好象不需要调用吧,多余的

s是double型的,你用了%d,如果是0.X...,当然会是0,还有结果跟你的输入数据有直接关系...

一个问题输出时%d变成%lf

另一个问题是关键,你输入数据的时候是按照这样的格式输入的吗?
a,n回车
注意,中间要用逗号,因为你scanf中是这样要求的

s被定义为double,而你输出时却用%d是int型的用法。