Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2011, 11:18   #1
Pascaler
Пользователь
 
Регистрация: 08.04.2010
Сообщений: 45
По умолчанию Сортировка последовательности (си)

Дана последовательность, элементы которой есть двузначные числа. Упорядочить последовательность по возрастанию сумм цифр соответствующих элементов.

Помогите найти ошибку:

Код:
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
int A[5],Prv[5],c=0,i,k,z,Dec, Ones;
printf("vvedite posledovatelnost \n");
	for (i=0;i<5;i++){
			scanf ("%d", &A[i]);
		}
for (i=0;i<5;i++){
Dec = A[i]/10;
Ones = A[i] - Dec*10;
Prv[i] = Dec + Ones;
}
do {
		c=1;
	for (i=0; i<5; i++)
if (Prv[i]<Prv[i+1]) {
	k = Prv[i];
	Prv[i] = Prv[i+1];
	Prv[i+1] = k;
	z = A[i];
	A[i] = A[i+1];
	A[i+1] = z;
	c = 0;
}
}while (c);
for (i=0; i<5; i++)
	printf ("%d", Prv[i]);
return 0;
}
Буду благодарен за помощь
Pascaler вне форума Ответить с цитированием
Старый 01.06.2011, 15:12   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Код:
for (i=0; i<5; i++)
if (Prv[i]<Prv[i+1])
         ...
         Prv[i] = Prv[i+1];
         Prv[i+1] = k;
        ...
	A[i] = A[i+1];
	A[i+1] = z;
При последнем значении i (равном 4) произойдет обращение к несуществующему элементу массива.
Да и сам процесс сортировки как-то странно выглядит...

ЗЫ
Код:
for (i=0;i<5;i++){
Dec = A[i]/10;
Ones = A[i] - Dec*10;
Prv[i] = Dec + Ones;
}
Можно несколько оптимизировать:
Код:
for (i=0;i<5;i++)
    Prv[i] = A[i] / 10 + A[i] % 10;
Отпадет необходимость в двух переменных.
А возможная потеря времени (арифметические операции, по идее, выполняются быстрее, чем получение остатка от деления) будет совершенно незначительной... если вообще будет.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062

Последний раз редактировалось Mandrivnyk; 01.06.2011 в 15:18.
Mandrivnyk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить:формат последовательности параметров & способ размещения последовательности переменных DenSyntax Помощь студентам 0 22.06.2010 17:26
Сложнейший алгоритм (сортировка последовательности чисел по группам), программа? язык написания? Владимир777 Помощь студентам 1 02.03.2010 22:15
Сложнейший алгоритм (сортировка последовательности чисел по группам) Владимир777 Фриланс 3 02.03.2010 21:50
сортировка числовой последовательности по возрастанию Solniffko Паскаль, Turbo Pascal, PascalABC.NET 7 14.11.2008 08:36