Member 11841199 Ответов: 2

Segregateevenodd в C


Целочисленный массив содержит положительные целые числа. Желательно отсортировать этот массив таким образом, чтобы все нечетные числа стояли выше всех четных чисел в этом массиве. далее, все нечетные числа в массиве должны быть отсортированы в порядке возрастания, в то время как все четные числа должны быть отсортированы в порядке убывания.

Что я уже пробовал:

#include<stdio.h>

void swap(int *a, int *b);

void segregateEvenOdd(int arr[], int size)
{
	/* Initialize left and right indexes */
	int left = 0, right = size-1;
	while (left < right)
	{
		/* Increment left index while we see 0 at left */
		while (arr[left]%2 == 0 && left < right)
			left++;

		/* Decrement right index while we see 1 at right */
		while (arr[right]%2 == 1 && left < right)
			right--;

		if (left < right)
		{
			/* Swap arr[left] and arr[right]*/
			swap(&arr[left], &arr[right]);
			left++;
			right--;
		}
	}
}

void swap(int *a, int *b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}

/* driver program to test */
int main()
{
	int arr[100]
    printf("\nEnter no of elements :");
     scanf("%d", &num);
 
   for (i = 0; i < num; i++) {
      scanf("%d", &arr[i]);
	int arr_size = sizeof(arr)/sizeof(arr[0]);
	int i = 0;

	segregateEvenOdd(arr, arr_size);

	printf("Array after segregation ");
	for (i = 0; i < arr_size; i++)
		printf("%d ", arr[i]);

	return 0;
}

NotPolitcallyCorrect

Мы не служба отладки кода, и никто не может читать ваши мысли.

Richard Deeming

Неужели где-то там должен был скрываться вопрос?

Member 11841199

Тогда закройте этот бесполезный сайт

NotPolitcallyCorrect

Почему? Зачем закрывать совершенно хороший сайт, потому что вы ленивы? Неужели весь интернет вращается вокруг вас? Ваша неспособность задать вопрос не означает, что сайт должен закрыться.

NotPolitcallyCorrect

У вас там действительно классное отношение. Вы добьетесь многого и продвинетесь по службе, часто действуя подобным образом.

Member 11841199

(год)

AnvilRanger

Это твоя домашняя работа? Если вы включите то, что у вас есть, в область "что я пробовал", вы, вероятно, потерпите неудачу. Быстрый поиск в Google показывает, что вы скопировали и вставили этот код отсюда,http://www.geeksforgeeks.org/segregate-even-and-odd-numbers/.

Так что, похоже, вы пытаетесь выдать чужую работу за свою. Увидев это, я не думаю, что кто-то здесь, в проекте Code, будет склонен помочь вам.

OriginalGriff

Вы можете получить повышение в Burger Hell? :OMG:

2 Ответов

Рейтинг:
12

Jochen Arndt

Просто использовать ссылка на qsort - C++ [^] с соответствующей функцией сравнения вместо этого.


Рейтинг:
0

Patrice T

У вас есть вопрос ?
-----
Мы не делаем вашу домашнюю работу.
Домашнее задание предназначено не для того, чтобы проверить ваши навыки просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, с которыми вы сталкиваетесь при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по их исправлению.
Итак, попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.

Как программист, ваша задача-создавать алгоритмы это решает конкретные проблемы, и вы не можете полагаться на кого-то другого, чтобы вечно делать это за вас, поэтому есть время, когда вам придется научиться этому. И чем скорее, тем лучше.
Когда вы просто просите решение, это все равно что пытаться научиться водить машину, обучая кого-то другого.
Создание алгоритма-это в основном поиск математики и необходимая адаптация к вашей реальной задаче.