关于C红宝书140页第五题 Sn = a +aa + aaa +.....a^n 题
首先预祝大家2018变得更加优秀{:5_97:}然后就是我写的程序了,是有错的,运行结果为0.
看了好久....
求大神解释{:5_100:}
题目:
# include <stdio.h>
int n, i;
double a, sum, m;
int init()
{
i = 1;
m = 0;
sum = 0;
return 0;
}
int Sn()
{
while(i <= n)
{
m = m + a;
sum = sum + a;
a = a * 10;
++i;
}
return 0;
}
int main(int Sn, int init)
{
printf("请用户输入n:");
scanf("%d", &n);
printf("请用户输入a:");
scanf("%lf", &a);
printf("%lf", sum);
return 0;
} main函数的形参列表不能随意更改
没必要定义这么多函数,你都放到main函数中,计算用一个函数就行了
函数定义完了要调用 BngThea 发表于 2017-12-30 13:59
main函数的形参列表不能随意更改
没必要定义这么多函数,你都放到main函数中,计算用一个函数就行了
函数 ...
。。好,我先去改一下。 下面是更改后的程序,但结果总是为0。。{:5_99:}
# include <stdio.h>
int Sn(int i, int n, float m, float a, float sum)
{
while(i <= n)
{
m = m + a;
sum = sum + m;
a = a * 10;
++i;
}
return (sum);
}
int main()
{
int Sn(int i, int n, float m, float a, float sum);
int n, i = 1;
float a, sum = 0, m = 0;
printf("请用户输入a,n: ");
scanf("%f, %d", &a, &n);
printf("%f\n", sum);
return 0;
}
Ln_E 发表于 2017-12-30 14:56
下面是更改后的程序,但结果总是为0。。
主函数中没有调用函数,只是申明 BngThea 发表于 2017-12-30 17:50
主函数中没有调用函数,只是申明
# include <stdio.h>
int Sn(int x, int y)
{
int i = 1;
float sum = 0, m = 0;
while(i <= y)
{
m = m + x;
sum = sum + m;
x = x * 10;
++i;
}
return (sum);
}
int main()
{
int Sn(int x, int y);
int n;
float a, sk;
printf("请用户输入a,n: ");
scanf("%f, %d", &a, &n);
sk = Sn(a, n);
printf("%f\n", sk);
return 0;
}
好吧,经过我一个下午的努力.....{:10_277:}
我发现一个很奇怪的问题,上面的代码在我同学的电脑上运行结果是正确的。
换到我的电脑结果却错误的。。。。
所以,麻烦大佬先看一下我的程序是否正确。。。{:10_245:}
然后:为什么同一串代码在不同的电脑运行结果却不同。。。(同一软件,同一系统win10) Ln_E 发表于 2017-12-30 19:18
好吧,经过我一个下午的努力.....
我发现一个很奇怪的问题,上面的代码在我同学的电脑上运 ...
逻辑没有问题
估计导致出错的地方在scanf,引号里面不要用逗号,改为空格或者什么都不用 卧槽。。。可以了,谢谢大神指点
页:
[1]