|
- #include "cpp_headers/fcpp.hh"
-
- int main() {
- print("Please enter 10 natural numbers, enter 0 to show the sorted array, -1 to quit");
- // initialize the array with 0s
- int numbers[10] = {0,0,0,0,0,0,0,0,0,0};
- // ask 11 times for input
- for (int i = 0; i < 11; i++) {
- int input = enter_int("> ");
- // quit on -1
- if (input == -1) {
- break;
- // print the array on 0
- } else if (input == 0) {
- printf("Array = [");
- for (int n = 0; n < 10; n++) {
- // last number is printed with trailing bracket and newline
- if (n == 9) {
- printf("%d]\n", numbers[n]);
- // print out a single number with trailing space
- } else {
- printf("%d ", numbers[n]);
- }
- }
- break;
- // if already full, quit
- } else if (i >= 10) {
- print("array already full, terminating");
- break;
- // quit on invalid input
- } else if (input < -1) {
- print("input not allowed, terminating");
- break;
- // otherwise insert new input
- } else {
- // set last number to new input
- numbers[i] = input;
- // sort numbers from 0 to i
- for (int k = 0; k < i; k++) {
- // whenever we see a wrong ordered number
- if (numbers[k] > numbers[k+1]) {
- int smaller = numbers[k+1];
- int bigger = numbers[k];
- // flip the numbers
- numbers[k] = smaller;
- numbers[k+1] = bigger;
- // and step back to compare with previous numbers
- if (k <= 1) {
- // there is no number before the first one
- k = 0;
- } else {
- // step back 2, because we are adding 1 each time
- k = k-2;
- }
- }
- }
- }
- }
- }
|