计算中的 C 结构

标签 c function struct

我已经设置并运行了我的函数,当我运行程序时,它只是跳到末尾,如果我按 Enter,它会要求我输入值,但将所有内容计算为 0.00。

我很确定它在我的范围内 “struct SEGMENTcalculate_segment_v1(struct SEGMENT s)”函数 或应输入值的函数。

感谢任何帮助!

#include <stdio.h>
#include <math.h>

double atan(double x);

struct POINT {
    double x;
    double y;
};

struct SEGMENT {
    struct POINT p1;
    struct POINT p2;
    double length;
    double angle;
};

double distance_of_points(struct POINT p1, struct POINT p2)
{
    double length;
    length = sqrt(pow((p1.x - p2.x), 2) + pow((p1.y - p2.y), 2));
    return length;
};

double angle_x(struct POINT p1, struct POINT p2)
{
    double angle;
    double berechnung;
    berechnung=(pow((p1.x - p2.x), 2)/(pow((p1.y - p2.y), 2)));
    angle = atan(berechnung);
    return angle;
}

void print_segment(struct SEGMENT s)
{
    printf("\n--> Die Strecke verbindet die Punkte"
           " (%.2f,%.2f) und (%.2f,%.2f);\n"
           "--> Sie hat eine Laenge von %.4f;\n"
           "--> Der Winkel betraegt: %.2f Grad.\n\n",
           s.p1.x, s.p1.y, s.p2.x, s.p2.y, s.length, s.angle);
}

struct SEGMENT read_segment_v1()
{
    struct SEGMENT s;
    printf(">> Bitte Koordinaten x,y des ersten"
           " Punktes der Strecke eingeben: ");
    scanf ("%lf%lf", &s.p1.x, &s.p1.y);
    printf(">> Bitte Koordinaten x,y des zweiten"
           " Punktes der Strecke eingeben: ");
    scanf ("%lf%lf", &s.p2.x, &s.p2.y);
    return s;
}

struct SEGMENT calculate_segment_v1(struct SEGMENT s)
{
    struct POINT X={s.p1.x, s.p1.y}, Y={s.p2.x ,s.p2.y};
    s.length = distance_of_points(X, Y);
    s.angle = angle_x(X, Y);
}

int main(void)
{
    struct SEGMENT S;
    char c;
    double l;

    while (1) {
        printf("Bitte # eingeben fuer Programmende: ");
        fflush(stdin);
        scanf ("%c", &c);

        if (c=='#') break;

        S = read_segment_v1();
        S = calculate_segment_v1(S);
        print_segment(S);
    }

    printf("Ende des Programms\n");
    return 0;
}

最佳答案

您的代码中存在错误。添加

return s;

calculate_segment_v1 函数的末尾来修复它。

PS:我忍不住要离题一下,除了这个特定的错误之外,您发布的代码在许多方面都相当糟糕。如果这是您在学习编码时编写的内容,请考虑更改您迄今为止所采取的学习路径。

关于计算中的 C 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53525466/

相关文章:

c - C 中小型数据集 HashMap 的替代方案

c - 为函数分配参数

function - 如何更正 "Function definitions are not permitted at the prompt or in scripts"

python - 操作字节列表时使用 pack_into() 的替代方案?

升级到 Mojave 后无法在 Mac 上编译 C 程序

c - 这段代码是如何工作的?

arrays - 函数中的闭包数组参数

c - 我的链接列表输出不正确?

逗号分隔的文本文件到结构数组

c - 信号量只能被一个进程获取