Структуры - C (СИ) (69620)

Узнай цену своей работы

Формулировка задачи:

Всем привет! В общем есть задача, где нужно создать с помощью структур координаты (Х,У), ещё одна структура где будет создаваться якобы точки треугольника. Далее требуется ввести координаты 3х точек и сохранить их в структуре, с этим вроде как я справился, но есть ещё одно условие программа должна уметь "смещать" треугольник на значения которые я задам. Это я тоже "выполнил", но главная проблема что это самое "смещение" должно выполняться в отдельной функции, как это сделать вместе с структурами я не понимаю) Надеюсь вы поможете.
#include <stdio.h>
#include <stdlib.h>
 
struct Punkt
{
    float x;
    float y;
};
struct Dreieck
{
    struct Punkt kord1;
    struct Punkt kord2;
    struct Punkt kord3;
};
 
int main()
{
    struct Dreieck r;
    float x, b;
 
        printf("Bitte gib Dreieck Punkt 1 (x|y): ");
    scanf("%f|%f",&r.kord1.x,&r.kord1.y);
        printf("Bitte gib Dreieck Punkt 2 (x|y): ");
    scanf("%f|%f",&r.kord2.x,&r.kord2.y);
        printf("Bitte gib Dreieck Punkt 3 (x|y): ");
    scanf("%f|%f",&r.kord3.x,&r.kord3.y);
        printf("\nWie viele soll das Dreieck verschoben werden? (x|y): ");
    scanf("%f|%f",&x,&b);  //Здесь задаются координаты на сколько сместить треугольник.
        printf("\nNeue Position des Dreiecks:\n");
    printf("Punkt 1 (x|y): %f|%f\n",r.kord1.x+x,r.kord1.y+b); //Вот это смещение
    printf("Punkt 2 (x|y): %f|%f\n",r.kord2.x+x,r.kord2.y+b); //нужно вывести в отдельную функцию, 
    printf("Punkt 3 (x|y): %f|%f\n",r.kord3.x+x,r.kord3.y+b); //вопрос как?
 
    return 0;
}

Решение задачи: «Структуры»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
struct Punkt
{
    float x;
    float y;
};
struct Dreieck
{
    struct Punkt kord1;
    struct Punkt kord2;
    struct Punkt kord3;
};
void Sdvig (struct Dreieck *q)
{
    float x, b;
        printf("\nWie viele soll das Dreieck verschoben werden? (x|y): ");
    scanf("%f|%f",&x,&b);
        printf("\nNeue Position des Dreiecks:\n");
    printf("Punkt 1 (x|y): %f|%f\n",q->kord1.x+x,q->kord1.y+b);
    printf("Punkt 2 (x|y): %f|%f\n",q->kord2.x+x,q->kord2.y+b);
    printf("Punkt 3 (x|y): %f|%f\n",q->kord3.x+x,q->kord3.y+b);
}
int main()
{
    struct Dreieck r;
        printf("Bitte gib Dreieck Punkt 1 (x|y): ");
    scanf("%f|%f",&r.kord1.x,&r.kord1.y);
        printf("Bitte gib Dreieck Punkt 2 (x|y): ");
    scanf("%f|%f",&r.kord2.x,&r.kord2.y);
        printf("Bitte gib Dreieck Punkt 3 (x|y): ");
    scanf("%f|%f",&r.kord3.x,&r.kord3.y);
        Sdvig (&r);
    return 0;
}

Оцени полезность:

14   голосов , оценка 3.857 из 5