搜索
查看: 633|回复: 4
打印 上一主题 下一主题

求助,改不出bug,不管怎样改,返回值都为0

[复制链接]
跳转到指定楼层
楼主
发表于 2017-12-3 22:39:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
求助,不管怎么改,自定义函数的返回值都为0

#include<stdio.h>
#include<math.h>
void main()
{
        int x, i = 0, j, n;
        double sum = 0., X, Y, T;
        printf("请输入x的值:");
        scanf_s("%d", &x, 1);
        do {
                i++;
                T = dgx(i, x);
                printf("%f\n", T);
                sum = sum + T;
                printf("%f\n", sum);
        } while (fabs(dgx(i, x)) >1e-5);
        printf("sinx=%f,共求了%d项\n", sum, i);
        system("pause");
        return 0;
}

double dgx(int n, int x)//n:第几项        x:输入的x
{
        int i;
        double X, Y, T;//X:单个项的分子        Y:单个项的分母        T:单个项
        X = 1.0;
        Y = 1.0;
        for (i = 1; i <= (2 * n - 1); i++)
        {
                X = X*x;
                Y = Y*i;
        }
        T = X / Y;
        if (i % 2 == 0) T = T*(-1);
        printf("%f\n\n\n", T);
        return T;
}

最佳答案

查看完整内容

[mw_shl_code=c,true]#include #include double dgx(int, int); int main() { int x, i = 0, j, n; double sum = 0., X, Y, T; printf("请输入x的值:"); scanf_s("%d", &x, 1); do { i++; T = dgx(i, x); printf("%f\n", T); sum = sum + T; printf("%f\n", sum); } while (fab ...
沙发
发表于 2017-12-3 22:39:51 | 只看该作者
[mw_shl_code=c,true]#include<stdio.h>
#include<math.h>
double dgx(int, int);
int main()
{
        int x, i = 0, j, n;
        double sum = 0., X, Y, T;
        printf("请输入x的值:");
        scanf_s("%d", &x, 1);
        do {
                i++;
                T = dgx(i, x);
                printf("%f\n", T);
                sum = sum + T;
                printf("%f\n", sum);
        } while (fabs(dgx(i, x)) >1e-5);
        printf("sinx=%f,共求了%d项\n", sum, i);
        system("pause");
        return 0;
}

double dgx(int n, int x)//n:第几项        x:输入的x
{
        int i;
        double X, Y, T;//X:单个项的分子        Y:单个项的分母        T:单个项
        X = 1.0;
        Y = 1.0;
        for (i = 1; i <= (2 * n - 1); i++)
        {
                X = X*x;
                Y = Y*i;
        }
        T = X / Y;
        if (i % 2 == 0) T = T*(-1);
        printf("%f\n\n\n", T);
        return T;
}[/mw_shl_code]
板凳
 楼主| 发表于 2017-12-3 22:46:24 | 只看该作者
放在一起时提醒有问题,但是不知道什么问题
但是用VS2017把自定义函数添加为单独项时没问题
地板
 楼主| 发表于 2017-12-4 22:18:46 | 只看该作者
主要问题是未在主函数前定义自定义函数的类型
还有个错误,在自定义函数中if (i % 2 == 0) T = T*(-1);该改为if (n % 2 == 0) T = T*(-1);

点评

Yes!  发表于 2017-12-4 22:21
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表