Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int read_array(int *array, int *size);
- void print_array(int *array, int size);
- void bubble_sort(int *array, int size);
- int main() {
- int size, read_success;
- int *array;
- if (scanf("%d", &size) == 1 && size > 0) {
- array = (int *)calloc(size, sizeof(int));
- if (array != NULL) {
- read_success = read_array(array, &size);
- if (read_success) {
- bubble_sort(array, size);
- print_array(array, size);
- } else {
- printf("n/a");
- }
- free(array);
- array = NULL;
- }
- } else {
- printf("n/a");
- }
- return 0;
- }
- int read_array(int *array, int *size) {
- int success = 0;
- for (int *ptr = array; ptr - array < *size; ptr++) {
- char separator;
- if (scanf("%d", ptr) != 1) break;
- separator = getchar();
- if (separator != ' ') {
- if (separator == '\n' && ptr - array + 1 == *size) {
- success = 1;
- break;
- }
- }
- }
- return success;
- }
- void print_array(int *array, int size) {
- for (int *ptr = array; ptr - array < size; ptr++) {
- printf("%d", *ptr);
- if (ptr - array + 1 != size) printf(" ");
- }
- }
- void bubble_sort(int *array, int size) {
- int temp;
- for (int *outer = array; outer - array < size - 1; outer++) {
- for (int *inner = array; inner - array < size - 1; inner++) {
- if (*inner > *(inner + 1)) {
- temp = *(inner + 1);
- *(inner + 1) = *inner;
- *inner = temp;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement