Member 13095321 Ответов: 1

Сортировка чисел.


мне нужно написать программу для сортировки аргументов командной строки (чисел).

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

#include<stdio.h>
#include<stdlib.h>

int main(int argc, char *argv[])
{
	int i, j, t, n, pos, a[100];
	n = argc - 1;
	printf("\nNumber of elements in the input array is : %d\n", n);
	printf("\nThe input array is\n\t");
	for (i = 1; i <= n; i++)
	{
		a[i - 1] = atoi(argv[i]);
		printf("%d ", a[i - 1]);
	}
	for (i = 0; i<n; i++)
	{
		pos = i;
		for (j = i + 1; j<n; j++)
		{
			if (a[pos] > a[j])
			{
				pos = j;
			}
		}
		if (pos != i)
		{
			t = a[i];
			a[i] = a[pos];
			a[pos] = t;
		}
	}
	printf("\n\n The sorted array is \n\t");
	for (i = 0; i<n; i++)
	{
		printf("%d ", a[i]);
	}
	return 0;
}

Patrice T

И у вас есть вопрос, проблема, ошибка ?

Mehedi Shams

Привет Член 13095321,

Ваш код довольно совершенен. Он отлично сортирует заданный диапазон чисел в командной строке. Итак, в чем проблема, или где вы находите трудности?

PIEBALDconsult

Я предпочитаю сортировать значения из командной строки по мере их копирования в массив, а не сортировать массив после его заполнения.
Итак, [ 3, 1, 2] становится
[ 3 ]
[ 1 , 3 ]
[ 1 , 2 , 3 ]

1 Ответов

Рейтинг:
2

KarstenK

Существуют различные алгоритмы сортировки, так что это учебник по программированию дает вам прекрасный урок о сортировке.

совет: используйте Google