Упражнения C: Удвойте свое значение и замените следующее число на 0, если текущее и следующее значение совпадают, и сдвиньте все 0 в конец
C Массив: упражнение-106 с решением
Напишите программу на C для преобразования массива таким образом, чтобы удвоить его значение и заменить следующее число на 0, если текущий и следующий элемент совпадают, и переставить массив так, чтобы все 0 сдвинулись до конца.
Пример решения:
Код C:
#include<stdio.h>
void ZerosAtEnd(int arr1[], int n)
{
int ctr = 0;
for (int i = 0; i < n; i++)
if (arr1[i] != 0)
arr1[ctr++] = arr1[i];
while (ctr < n)
arr1[ctr++] = 0;
}
void updateArrayRearrange(int arr1[], int n)
{
if (n == 1)
return;
for (int i = 0; i < n - 1; i++)
{
if ((arr1[i] != 0) && (arr1[i] == arr1[i + 1]))
{
arr1[i] = 2 * arr1[i];
arr1[i + 1] = 0;
i++;
}
}
ZerosAtEnd(arr1, n);
}
void ArrayPrinting(int arr1[], int n)
{
for (int i = 0; i < n; i++)
printf("%d ",arr1[i]);
}
int main()
{
int arr1[] = { 0, 3, 3, 3, 0, 0, 7,7, 0, 9 };
int n = sizeof(arr1) / sizeof(arr1[0]);
printf("The given array is: ");
ArrayPrinting(arr1, n);
updateArrayRearrange(arr1, n);
printf("\nThe new array is: ");
ArrayPrinting(arr1, n);
return 0;
}
Пример вывода:
Данный массив: 0 3 3 3 0 0 7 7 0 9 Новый массив: 6 3 14 9 0 0 0 0 0 0
Блок-схема 1:
Блок-схема 2:
Редактор кода программирования C:
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Предыдущий: Напишите программу на C, чтобы найти минимальное количество перестановок, необходимое для сбора всех элементов, меньших или равных k.
Следующая: C Указатель Упражнения Home
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code