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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2010, 17:49   #1
PPPPPP
Пользователь
 
Регистрация: 28.02.2010
Сообщений: 22
По умолчанию Поменять местами два последних элемента массива после сортировки (язык си)

Друзья! Помогите пожалуйста! Эта программа сортирует введенные с клавиатуры числа по возрастанию. А мне надо, чтобы она еще помимо этого меняла местами два последних числа! Помогите! Заранее спасибо!

Например, пусть с клавиатуры вводятся 5 чисел: 5, 1, 13, 9, 2
Программа их отсортирует и выведет на экран по возрастанию, т.е.: 1, 2, 5, 9, 13
А мне надо, чтобы она еще меняла два последних числа местами и также выводила это на экран, т.е.: 1, 2, 5, 13, 9


Код:
#include "stdafx.h"
#include <stdio.h>
void main ()
{
	int a[100];
	int tmp,n,i,j,k;
		printf ("\n Vvedite znachenie n=");
	scanf ("%d",&n);
		for(i=0;i<n; i++)
	{
		scanf ("%d",&a[i]);
	}
		do{k=0;
			for(i=0;i<n-1;i++)
		{
			  
			if(a[i+1]<a[i]) 
	{tmp=a[i+1]; 
	a[i+1]=a[i]; 
	a[i]=tmp;
	k=k+1;}}}
			while (k!=0);
		for (i=0;i<n;i++) 

		printf ("%d ", a[i]);
		scanf ("%d",&a);		}
PPPPPP вне форума Ответить с цитированием
Старый 18.04.2010, 17:55   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

так, наверное?
Код:
#include <stdio.h>
void main ()
{
	int a[100];
	int tmp,n,i,j,k;
	printf ("\n Vvedite znachenie n=");
	scanf ("%d",&n);
	for(i=0;i<n; i++)
	{
		scanf ("%d",&a[i]);
	}
	do{
		k=0;
		for(i=0;i<n-1;i++)
		{

			if(a[i+1]<a[i]) 
			{
				tmp=a[i+1]; 
				a[i+1]=a[i]; 
				a[i]=tmp;
				k=k+1;
			}
		}
	}
	while (k!=0);

	tmp = a[n-1];
	a[n-1] = a[n-2];
	a[n-2] = tmp;

	for (i=0;i<n;i++)
		printf ("%d ", a[i]);
	scanf ("%d",&a);	
}
netrino вне форума Ответить с цитированием
Старый 18.04.2010, 18:13   #3
PPPPPP
Пользователь
 
Регистрация: 28.02.2010
Сообщений: 22
Смех

ДА ЭТО оно! спасибо огромное!!
PPPPPP вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поменять местами 3-ю и 4-ую строки массива танечка155 Помощь студентам 3 23.11.2010 21:52
Массивы: поменять местами 2 элемента Sadisto Помощь студентам 10 05.03.2010 22:47
Максимальный элемент массива поменять местами с четвертым. Katie Помощь студентам 2 13.01.2010 05:59
Поменять местами правую и левую часть исходного массива антон2 Паскаль, Turbo Pascal, PascalABC.NET 4 07.04.2009 17:36
Поменять местами две половины массива, сохраняя их порядок. Леди Уинтер Помощь студентам 11 09.01.2008 09:21