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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2013, 10:36   #1
geesmun
Новичок
Джуниор
 
Регистрация: 07.11.2013
Сообщений: 2
Восклицание Нужно поменять местами макс и первый отриц эл. в массиве, с#

Нужно поменять местами максимальный элемент с первым отрицательным, не понимаю в чем ошибка.
Почему-то вместо максимального выдает последний! И считает его как 15(в р=а[имакс] пришлось прописать -1, чтобы хоть как-то заработало)
Код:
int[] a = new int[] { 1, 2, 4, 55, 23, 45, -2, -50, 409, -56, 22, -6, 25, 21, 46 };
            int p, i, amin, imin, amax = a[0], imax;
            for (i = 0; i < 15; i++)
                Console.Write("{0:d} ", a[i]);
            Console.WriteLine();
            for (i = 0; i < 15; i++)
                if (a[i] < a[0]) break;
            amin = a[i]; imin = i;
            for (i = 0; i < 15; i++)
                if (a[i] > a[0]) amax = a[i]; imax = i;
            p = a[imax - 1]; a[imax - 1] = a[imin]; a[imin] = p;
            for (i = 0; i < 15; i++)
                Console.Write("{0:d} ", a[i]);
            Console.WriteLine();
            Console.WriteLine("amax {0:d}, imax {1:d}, amin {2:d}, imin {3:d}", amax, imax, amin, imin);
​
            Console.WriteLine();
            Console.ReadKey();
geesmun вне форума Ответить с цитированием
Старый 08.11.2013, 10:44   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
using System;
 
public class Test
{
	public static void Main()
	{
			int[] a = new int[] { 1, 2, 4, 55, 23, 45, -2, -50, 409, -56, 22, -6, 25, 21, 46 };
            int p, i, amin, imin, amax = a[0], imax;
            for (i = 0; i < 15; i++)
                Console.Write("{0:d} ", a[i]);
            Console.WriteLine();
            for (i = 0; i < 15; i++)
                if (a[i] < a[0]) break;
            amin = a[i]; imin = i;
            imax=0;
            for (i = 0; i < 15; i++)
                if (a[i] > a[imax]) {amax = a[i]; imax = i;}
            p = a[imax - 1]; a[imax - 1] = a[imin]; a[imin] = p;
            for (i = 0; i < 15; i++)
                Console.Write("{0:d} ", a[i]);
            Console.WriteLine();
            Console.WriteLine("amax {0:d}, imax {1:d}, amin {2:d}, imin {3:d}", amax, imax, amin, imin);
	}
}
найди отличия

Цитата:
1 2 4 55 23 45 -2 -50 409 -56 22 -6 25 21 46
1 2 4 55 23 45 -50 -2 409 -56 22 -6 25 21 46
amax 409, imax 8, amin -2, imin 6
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 08.11.2013, 16:43   #3
geesmun
Новичок
Джуниор
 
Регистрация: 07.11.2013
Сообщений: 2
По умолчанию да-да-да

Спасибо огромное, вот точный код:
Код:
using System;
 
public class Test
{
	public static void Main()
	{
			int[] a = new int[] { 1, 2, 4, 55, 23, 45, -2, -50, 409, -56, 22, -6, 25, 21, 46 };
            int p, i, amin, imin, amax = a[0], imax;
            for (i = 0; i < 15; i++)
                Console.Write("{0:d} ", a[i]);
            Console.WriteLine();
            for (i = 0; i < 15; i++)
                if (a[i] < a[0]) break;
            amin = a[i]; imin = i;
            imax=0;
            for (i = 0; i < 15; i++)
                if (a[i] > a[imax]) {amax = a[i]; imax = i;}
            p = a[imax]; a[imax] = a[imin]; a[imin] = p;
            for (i = 0; i < 15; i++)
                Console.Write("{0:d} ", a[i]);
            Console.WriteLine();
            Console.WriteLine("amax {0:d}, imax {1:d}, amin {2:d}, imin {3:d}", amax, imax, amin, imin);
	}
}
Код:
1 2 4 55 23 45 -2 -50 409 -56 22 -6 25 21 46 
1 2 4 55 23 45 409 -50 -2 -56 22 -6 25 21 46 
amax 409, imax 8, amin -2, imin 6
geesmun вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В каждой строке поменять первый и наибольший элемент местами vlad1kT Помощь студентам 0 16.06.2013 10:51
Поменять в двумерном массиве местами первый и последний столбец }|{eka Паскаль, Turbo Pascal, PascalABC.NET 6 21.06.2012 20:19
Pascal.поменять местами первый и последний символ в последнем слове Kris92 Помощь студентам 5 07.07.2010 14:00