Вопрос задан 24.09.2026 в 21:04. Предмет Информатика. Спрашивает Maksymenko Viktoria.

Как перевернуть рандомный массив в СИ?
__________________________________________
Использовал два цикла, нужно сделать так, чтобы был только один.

#include
#include
int main() {
int a[10];
for(int i=0;i<10;i++){
a[i]=rand()%11;
printf("%d ", a[i]);}
int b[10];
int k=0;
for(int i=9;i>=0;i--){
b[k]=a[i];
k++;}
printf("\n\n");
for(int i=0;i<10;i++){
printf("%d ",b[i]);}
return 0;
}

Перейти к ответам

Ответы на вопрос

Отвечает Зыков Антон.

Чтобы перевернуть массив в Си одним циклом, нужно менять местами первый элемент с последним, второй с предпоследним и так далее. Цикл идёт только до середины массива.

Пример:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
int a[10];
srand(time(NULL));

for (int i = 0; i < 10; i++) {
a[i] = rand() % 100;
printf("%d ", a[i]);
}

for (int i = 0; i < 10 / 2; i++) {
int temp = a[i];
a[i] = a[10 - 1 - i];
a[10 - 1 - i] = temp;
}

printf("\n");

for (int i = 0; i < 10; i++) {
printf("%d ", a[i]);
}

return 0;
}

Главная строка здесь: меняем \( a[i] \) и \( a[10 - 1 - i] \). Так массив разворачивается без второго массива.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос