Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int array_elements; //ilosc elementow tablicy
- int array_half; //gdzie wypada polowa tablicy
- float global_array[30];
- float first_elem, quotient; //elementy ciagu
- ///////////////////////////////////////
- float random_float_number();
- void sel_sort_desc( float array[], int n );
- void sel_sort_asc( float array[], int n );
- void upper_half( float array[], float first, float second );
- void lower_half( float array[] );
- void print_array( float array[], int arr_size );
- ////////////////////////////////////////
- float random_float_number()//od -5 do 5
- {
- return (-5000+(rand()%10000))*0.001; //dokladnosc do 3 miejsc po przecinku
- }
- void insertion_sort_asc(float array[], int elements)
- {
- int i;
- for(i=1;i<elements;i++)
- {
- int key = array[i];
- int j = i-1;
- while( j>=0 && array[j]>key )
- {
- array[j+1]=array[j];
- j--;
- }
- array[j+1]=key;
- }
- }
- void insertion_sort_desc(float array[], int elements)
- {
- int i;
- for(i=1;i<elements;i++)
- {
- int key = array[i];
- int j = i-1;
- while( j>=0 && array[j]>key )
- {
- array[j+1]=array[j];
- j--;
- }
- array[j+1]=key;
- }
- }
- //liczenie ciagu geometrycznego
- void upper_half( float array[], float first, float quotient )
- {
- int start = 0;
- int end = array_half;
- int i;
- float temp[array_half];
- temp[0] = first;
- for(i=1; i<array_half; i++) temp[i]=0.0; //zerowanie tablicy
- for(i=1; i<array_half; i++)
- {
- temp[i] = temp[i-1] * quotient;
- }
- for(i=start; i<end; i++) array[i] = temp[i - start];
- }
- void lower_half( float array[] )
- {
- int start = array_half;
- int end = array_elements;
- int i;
- float temp[array_half];
- for(i=0; i<array_half; i++) temp[i] = random_float_number();
- insertion_sort_desc(temp, array_half);
- for(i=start; i<end; i++) array[i] = temp[i-start];
- }
- void print_array( float array[], int arr_size )
- {
- int i;
- for(i=0; i<arr_size; i++ ) printf( "global_array[%d] = %f\n", i, array[i] );
- }
- int main()
- {
- srand(time(0));
- do{
- puts("Program wypelnia pierwsza polowe tablicy ciagiem geometrycznym rosnacym,");
- puts("a druga liczbami od -5 do 5 posortowanymi rosnaco.");
- puts("Podaj rozmiar tablicy (wiekszy niz 10, mniejszy niz 30): ");
- scanf("%d", &array_elements);
- }while(array_elements<10 || array_elements>30);
- puts("Podaj pierwszy element ciagu:");
- scanf("%f", &first_elem);
- //podaj iloraz ciagu
- puts("Podaj iloraz ciagu:");
- scanf("%f", "ient);
- array_half = array_elements / 2;
- //ciagi
- upper_half(global_array, first_elem, quotient);
- //losowe
- lower_half(global_array);
- //pokaz
- print_array(global_array, array_elements);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement