Zadanie polega na znalezieniu indeksów najmniejszej i największej liczby w tablicy typu double spośród wylosowanych, a następnie zamianie miejscami liczby największej z liczbą najmniejszą.
Wypis pomijamy, bo on akurat działa. Na int'ach mam warunek na mniejsze/większe (A[i] < MIN/A[i] > MAX) i działa perfect. Z góry mówię, że dopiero zaczynam i nie rozumiem jeszcze o co chodzi dokładnie. Byłbym wdzięczny jakby ktoś wytłumaczył porównywanie liczb zmiennoprzecinkowych. Szukałem informacji po innych forach i w google i na nic, co by zadziałało, nie natrafiłem.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main(){
double A[10], a = -100.0, b = 100.0, k, MIN = 1000.0, MAX = -1000.0, EPS = 1e-15;
int min=0, max=0;
time_t czas;
srand( (unsigned int)time(&czas));
//to działa ok
for(int i=0; i<10; i++){
A[i] = a + ((double)rand()/RAND_MAX)*(b-a);
printf("A[%d] = %6.2lf\n", i, A[i]);
}
printf("\n");
//tutaj nie wiem jak porównać
for(int i=0; i<10; i++){
if(/*WARUNEK (?)*/){ MIN = A[i]; min = i; }
if(/*WARUNEK (?)*/){ MAX = A[i]; max = i; }
}
//od tąd działa ok
k = A[max];
A[max] = A[min];
A[min] = k;
for(int i=0; i<10; i++){
printf("A[%d] = %6.2lf\n", i, A[i]);
}
printf("\n MIN: %d [Index: %d], MAX: %d [Index: %d]", MIN, min, MAX, max);
printf("\n");
return 0;
}