Структуры - 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;
}