Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<time.h>
- float frand(float min, float max){
- float r = (float) rand()/RAND_MAX;
- return r*(max-min) + min;
- }
- void tab_rand(float **tab, int n, int m, float min, float max){
- int i, j;
- tab = (float**)tab;
- for(i = 0; i < n; i++){
- for(j = 0; j < m; j++){
- tab[i][j] = frand(min, max);
- }
- }
- }
- void bubble_sort(void *p, int n){
- int i, j;
- int* ptr = (int*)p;
- for(i = 0; i < n-1; i++){
- for(j = 0; j < n-i-1; j++){
- if(ptr[j] > ptr[j+1]){
- ptr[j] += ptr[j+1];
- ptr[j+1] = ptr[j] - ptr[j+1];
- ptr[j] -= ptr[j+1];
- }
- }
- }
- }
- void normalize(void *tab, int n){
- int i;
- float *p, sum=0;
- p = (float*)tab;
- for(i = 0; i < n; i++){
- sum += p[i];
- }
- for(i = 0; i < n; i++){
- *p /= sum;
- }
- tab = p;
- }
- void print_array(void *tab, int n){
- float *p;
- p = tab;
- int i = 0;
- for(i = 0; i < n; i++){
- printf("%.3f ", p[i]);
- }
- printf("\n");
- }
- void** Allocate(void** tab, const char* typ, int n, int m){
- int i;
- if(!strcmp(typ, "int")){
- int** tab = (int**)malloc(n*sizeof(int*));
- for(i = 0; i < n; i++){
- tab[i] = (int*)malloc(m*sizeof(int ));
- }
- if(!tab){
- exit(-1);
- }
- for(i = 0; i < n; i++){
- bubble_sort(tab[i], m);
- }
- // sortowanie
- }
- else if(!strcmp(typ, "float")){
- float** tab = (float**)malloc(n*sizeof(float*));
- for(i = 0; i < n; i++){
- tab[i] = (float*)malloc(m*sizeof(float ));
- }
- if(!tab){
- exit(-1);
- }
- for(i = 0; i < n; i++){
- bubble_sort(tab[i], m);
- }
- for(i = 0; i < n; i++){
- normalize(tab[i], m);
- }
- // sortowanie
- }
- else if(!strcmp(typ, "double")){
- double** tab = (double**)malloc(n*sizeof(double*));
- for(i = 0; i < n; i++){
- tab[i] = (double*)malloc(m*sizeof(double ));
- }
- if(!tab){
- exit(-1);
- }
- for(i = 0; i < n; i++){
- bubble_sort(tab[i], m);
- }
- for(i = 0; i < n; i++){
- normalize(tab[i], m);
- }
- // sortowanie
- }
- return tab;
- }
- int main(int argc, char **argv){
- srand(time(0));
- int wiersze = atoi(argv[1]), kolumny = atoi(argv[2]), min = atoi(argv[4]), max = atoi(argv[5]);
- const char *typ = argv[3];
- float sum = 0;
- int i, j;
- void** tab = Allocate(tab, typ,wiersze, kolumny);
- free(tab);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement