Mam problem, otóż źle zwraca mi wynik w funkcjach, zero błędów jest. Ponadto wszystkie elementy tablicy tab po wpisaniu mają wartość 0.00000...
// ConsoleApplication8.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <malloc.h>
#include <time.h>
#include <conio.h>
#include <windows.h>
#include <cmath>
struct Punkt
{
double x;
double y;
};
void wypelnienielosowe(Punkt *tab, int rozmiar)
{
for (int i = 0; i < rozmiar; i++)
{
tab[i].x = rand() % 1001 / 100.;
tab[i].y = rand() % 1001 / 100.;
}
}
void wypelnienie(Punkt *tab, int rozmiar)
{
for (int i = 0; i < rozmiar; i++)
{
printf("Wpisz punkt X");
scanf("%f", &tab[0].x);
printf("Wpisz punkt Y");
scanf("%f", &tab[0].y);
}
for (int i = 0; i < rozmiar; i++)
{
printf("\ntablica[%d].x %f", i, tab[i].x);
printf("\ntablica[%d].y %f", i, tab[i].y);
}
getchar();
}
void dwapunkty(Punkt *punkty)
{
double wynik;
for (int i = 0; i < 2; i++)
{
printf("Wpisz wartosc punktu X%d:", i + 1);
scanf("%f", &punkty[i].x);
printf("Wpisz wartosc punktu Y%d:", i + 1);
scanf("%f", &punkty[i].y);
}
for (int i = 0; i < 2; i++)
{
printf("%f", punkty[i].x);
printf("%f", punkty[i].y);
}
}
int main()
{
srand(time(NULL));
int rozmiar;
char wybor;
Punkt *tab;
Punkt *punkty;
printf("wpiszcie tutaj rozmiar tablicy: ");
scanf("%d", &rozmiar);
tab = (Punkt*)calloc(rozmiar, sizeof(Punkt));
punkty = (Punkt*)calloc(2, sizeof(Punkt));
printf("\nKtore wybierasz?\n1. Wybor losowy\n2.Wpisuj sam kazda komorke.\n");
wybor = _getch();
switch (wybor)
{
case '1':
{
wypelnienielosowe(tab, rozmiar);
break;
}
case '2':
{
wypelnienie(tab, rozmiar);
break;
}
default:
{
printf("cos zle wpisales/as.");
break;
}
}
getchar();
system("cls");
printf("Wszystko zostalo wyczyszczone.\nTablica zaalokowana.");
Sleep(2000);
system("cls");
printf("Wybierz jedna z opcji.\n1.f. zwraca odległość między zadanymi jako argumenty dwoma punktami\n2. f. sortuje zadaną jako argument tablicę wg odległości punktów od punktu(0.0): ");
wybor = _getch();
switch (wybor)
{
case '1':
{
dwapunkty(punkty);
break;
}
case '2':
{
break;
}
}
system("pause");
return 0;
}