Вопрос задан 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
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] \). Так массив разворачивается без второго массива.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

