Упражнения C: переставьте массив так, чтобы arr [i] становился arr [arr [i]] из массива размера n, а элементы находились в диапазоне от 0 до n-1
C Array: Упражнение-90 с раствором
Дан массив размера n такой, что каждый элемент находится в диапазоне от 0 до n-1. Напишите программу на C, чтобы переставить данный массив так, чтобы arr [i] стал arr [arr [i]].
Пример решения:
Код C:
#include<stdio.h>
void arrayArrange(int arr1[], int n)
{
for (int i=0; i < n; i++)
arr1[i] += (arr1[arr1[i]]%n)*n;
for (int i=0; i<n; i++)
arr1[i] /= n;
}
void arrayPrinting (int arr1[], int n)
{
for (int i = 0; i < n; i++)
printf("%d ", arr1[i]);
printf("\n");
}
int main()
{
int arr1[] = {2, 1, 4, 3, 0};
int n = sizeof(arr1)/sizeof(arr1[0]);
printf("The Original array is \n");
arrayPrinting(arr1, n);
arrayArrange(arr1, n);
printf("The modified array is: \n");
arrayPrinting(arr1, n);
return 0;
}
Пример вывода:
Исходный массив 2 1 4 3 0 Модифицированный массив: 4 1 0 3 2
Блок - схема:
Редактор кода программирования C:
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Предыдущий: Напишите программу на C, чтобы найти квадратную подматрицу максимального размера со всеми единицами.
Далее: дан несортированный массив определенного размера. Напишите программу на C, чтобы найти минимальную длину подмассива, чтобы при сортировке этого подмассива весь массив был отсортирован.
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code