# include <stdio.h>

# include <stdlib.h>

# include <string.h>


# define SIZE 101

# define TRUE 1


typedef struct _randomNumber {

int* array;

int* sortArray;

int count;


}randomNumber, *pRandomNumber;


// function prototype

// [1] =====================================

void Error(char * ErrorMessage);

// [2] =====================================

void Initiallize(randomNumber** stu);

// [3] =====================================

void testPrintf(randomNumber** stu);

// [4] =====================================

void RandomSorting(randomNumber** stu);

// [5] =====================================

void BubbleSort(randomNumber** stu);

// [6] =====================================

void dataPrintf(randomNumber** stu);

// =========================================


int main (void) {

srand((unsigned)time(NULL));

pRandomNumber stu = NULL;

Initiallize(&stu);

testPrintf(&stu);

RandomSorting(&stu);

BubbleSort(&stu);

dataPrintf(&stu);

return 0;

}


// [1] =====================================

void Error(char * ErrorMessage) {

fprintf(stdout, "%s \n", ErrorMessage);

exit(0);

} // end of Error function


// [2] =====================================

void Initiallize(randomNumber** stu) {

int i; // index

(*stu) = (pRandomNumber)malloc(sizeof(randomNumber));

if ( (*stu) == NULL ) {

Error("mallo fail !!!");

} else { // (*stu) != NULL

(**stu).array = (int*)malloc(sizeof(int)*SIZE);

if ((**stu).array == NULL) {

Error("mallo fail !!!");

} else {

(**stu).count = 0;

memset((**stu).array, 0, sizeof(int)*SIZE);

for (i = 0; i < SIZE-1; i++) {

(**stu).array[i] = i+1;

(**stu).sortArray = NULL;

}

}

}

} // end of Initiallize function


// [3] =====================================

void testPrintf(randomNumber** stu) {

int i;

for (i = 0; i < SIZE; i++) {

printf("%d ", (**stu).array[i]);

}

printf("\n");

} // end of testPrintf function


// [4] =====================================

void RandomSorting(randomNumber** stu) {

int count_1 = 0;

int start = 0;

int randomNumber = 0;

int TempNumber = SIZE-1; // 100 

int TempSize = SIZE;

int i = 0; 

int j; // index

printf("count : ");

scanf("%d", &((**stu).count));

(**stu).sortArray = (int *)malloc(sizeof(int)* (**stu).count);

memset((**stu).sortArray, 0, sizeof(int)* (**stu).count);

do {

randomNumber = rand()%TempNumber;

(**stu).sortArray[i] = (**stu).array[randomNumber];

for(j = randomNumber; j<TempSize ; j++) {

(**stu).array[j] = (**stu).array[j+1]; 

  }

  TempSize--;

TempNumber--;

i++;

count_1++ ; 

} while (count_1 != (**stu).count);

} // end of RandomSorting function


// [5] =====================================

void BubbleSort(randomNumber** stu) {

int i, j; // index

int tempNumber = 0;

for (i = 0; i < (**stu).count -1; i++) {

for (j = 0; j < (**stu).count -1; j++) {

if ( (** stu).sortArray[j] > (** stu).sortArray[j+1] ) {

tempNumber = (** stu).sortArray[j] ;

(** stu).sortArray[j] = (** stu).sortArray[j+1];

(** stu).sortArray[j+1] = tempNumber;

}

}

}


} // end of BubbleSort function


// [6] =====================================

void dataPrintf(randomNumber** stu) {

int i;

for (i = 0; i < (**stu).count; i++) {

printf("%d ", (**stu).sortArray[i]);

}

printf("\n");

} // end of dataPrintf function

'언어 > c언어' 카테고리의 다른 글

네이버 답변준것 소수 출력  (0) 2016.07.31
네트워크에 쓸 코드  (0) 2016.07.29
네이버 지식인 답변준것 c언어 구구단  (0) 2016.07.01
c언어) 양수, 음수, 0 카운팅  (2) 2016.06.25
c언어 구현 linkedlist  (0) 2016.06.25