Заполнить массив из 10 элементов случайными числами в интервале [0..100] и отсортировать его по последней цифре - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Заполнить массив из 10 элементов случайными числами в интервале [0..100] и отсортировать его по последней цифре.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
const int N = 10;

int randInt(int min, int max) {
    return min + rand() % max;
}

void swap (int *a, int *b) {
    int tmp;
    tmp = *a;
    *a = *b;
    *b = tmp;
}
 
int main() {
    int arr[N];
    int i, j, k;
 
    srand(time(NULL));

    for (i = 0; i < N; i++) {
        arr[i] = randInt(1, 100);
    }

    printf("Исходный массив: [");
    for (i = 0; i < N; i++) {
        printf(" %d ", arr[i]);
    }
    printf("]\n");

    for(i = 0; i < N - 1; i++) { 
        for(j = 0; j < N - i - 1; j++) {  
            if(arr[j]%10 > arr[j+1]%10) {  
                swap(&arr[j], &arr[j+1]);
            }
        }
    }
 
    printf("Преобразованный массив: [");
    for (i = 0; i < N; i++) {
        printf(" %d ", arr[i]);
    }
    printf("]\n");
 
    return 0;
}
Как написать эту же программу, но без использования функции?

Решение задачи: «Заполнить массив из 10 элементов случайными числами в интервале [0..100] и отсортировать его по последней цифре»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define N 10
 
int main(void)
{
    srand(time(NULL));
    int arr[N];
    int i;
    for (i = 0; i < N; ++i) {
        printf("%d%c", arr[i] = rand() % 101, i == N - 1 ? '\n' : '\t');
    }
    for (i = 1; i < N; ) {
        if (i == 0 || (arr[i - 1] % 10) <= (arr[i] % 10)) {
            ++i;
        } else {
            int z = arr[i];
            arr[i] = arr[i - 1];
            arr[i - 1] = z;
            --i;
        }
    }
    for (i = 0; i < N; ++i) {
        printf("%d%c", arr[i], i == N - 1 ? '\n' : '\t');
    }
    return 0;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы

    include

    include

    include

  2. Определяем константу N, которая задает размер массива

    define N 10

  3. Инициализируем генератор случайных чисел srand(time(NULL));
  4. Создаем массив типа int и инициализируем его нулями int arr[N];
  5. Заполняем массив случайными числами в интервале [0..100] for (i = 0; i < N; ++i) { printf(%d\t, arr[i] = rand() % 101); }
  6. Сортируем массив по последней цифре for (i = 1; i < N; ) { if (i == 0 || (arr[i - 1] % 10) <= (arr[i] % 10)) { ++i; } else { int z = arr[i]; arr[i] = arr[i - 1]; arr[i - 1] = z; --i; } }
  7. Выводим отсортированный массив на экран for (i = 0; i < N; ++i) { printf(%d\t, arr[i]); }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3 из 5
Похожие ответы