Заполнить массив из 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; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
include
include
include
- Определяем константу N, которая задает размер массива
define N 10
- Инициализируем генератор случайных чисел srand(time(NULL));
- Создаем массив типа int и инициализируем его нулями int arr[N];
- Заполняем массив случайными числами в интервале [0..100]
for (i = 0; i < N; ++i) {
printf(
%d\t
, arr[i] = rand() % 101); } - Сортируем массив по последней цифре 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\t
, arr[i]); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д