Упражнения C: замените каждый элемент с наибольшим элементом на правой стороне
Массив C: упражнение 63 с решением
Напишите программу на C, чтобы заменить каждый элемент с наибольшим элементом на правой стороне.
Иллюстрированная презентация:
Пример решения:
Код C:
#include <stdio.h>
void printArray(int a[] ,int n)
{
for(int i = 0;i < n;i++)
printf("%d ",a[i]);
}
void replaceWithNextGreatest(int a[], int size)
{
int maximum = a[size-1];
a[size-1] = 0;
for(int i = size-2; i >= 0; i--)
{
int temp = a[i];
a[i] = maximum;
if(maximum < temp)
maximum = temp;
}
printf("After replace the modified array is: ");
printArray(a , size);
}
int main()
{
int i, arr1[] = {7, 5, 8, 9, 6, 8, 5, 7, 4, 6};
int n = sizeof(arr1) / sizeof(arr1[0]);
//------------- print original array ------------------
printf("The given array is : ");
for(i = 0; i < n; i++)
{
printf("%d ", arr1[i]);
}
printf("\n");
//------------------------------------------------------
replaceWithNextGreatest(arr1, n);
return 0;
}
Пример вывода:
Данный массив: 7 5 8 9 6 8 5 7 4 6 После замены модифицированный массив будет: 9 9 9 8 8 7 7 6 6 0
Блок - схема:
Редактор кода программирования C:
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Предыдущий: Напишите программу на C, чтобы найти самый большой подмассив с равным числом 0 и 1.
Далее: Напишите программу на C, чтобы найти медиану двух отсортированных массивов одинакового размера.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code