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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2011, 23:05   #11
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Ах да, Alex11223 подметил точно. Зачем вам выполнять второе условие?
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 25.07.2011, 23:07   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Почему когда первый элемент отрицательный,алгоритм берет сразу его,без проверки.Весь день мучаюсь,не могу разобраться. ((
ошибка тут:
Цитата:
Код:
min=a[0];
Вы же первый элемент берёте. А положительные (которые встретятся в массиве потом, уже будут БОЛЬШЕ, чем отрицательный элемент!
в таком случае берут или заведомо большое число, которого не может быть в массиве (например,
min=9999999
или заводят признак, по которому определяют, брали ли уже какой-то элемент в минимальные или нет..
например:
Код:
        n=5;
        int MinIndex = -1; 
        int a[]={6,2,0,-5,-1};
        for (i=0;i<n;i++)
            if (a[i]>0)
            {
              if (MinIndex < 0)
              {
                 MinIndex = i;
               }
               else
               {
                  if (a[i]<a[MinIndex]
                 {
                    MinIndex =i;
                 }
                }
            }
        if (MinIndex<0)
        {
           System.out.println('No pozitive in array!');
        }
        else 
        { 
           System.out.println(a[MinIndex]);
         }
p.s. пишу примерно, т.к. совсем не знаю C
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.07.2011, 23:09   #13
Faridik
Форумчанин
 
Аватар для Faridik
 
Регистрация: 08.08.2008
Сообщений: 117
По умолчанию

Ну задачка такая ))Спасибо за расьяснение и кстати с логическим И тоже не работает )))
Faridik вне форума Ответить с цитированием
Старый 25.07.2011, 23:11   #14
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Цитата:
и кстати с логическим И тоже не работает
так и не должно)) Условие та неправильное

Код:
int i,n,min;
        n=5;
        int a[]={6,2,0,-5,-1};
        min=a[0];
        for (i=1;i<n;i++)
            if (a[i]<min)
              min=a[i];
        System.out.println(min);
Пробуй так.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 25.07.2011, 23:21   #15
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Пробуй так.
Это нахождение минимального элемента. А по условию надо найти минимальный положительный, причем первый (0) элемент массива может быть отрицательным.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.07.2011, 23:24   #16
Faridik
Форумчанин
 
Аватар для Faridik
 
Регистрация: 08.08.2008
Сообщений: 117
По умолчанию

Код:
Даны целые числа n, a1, a2,…, an. Найти разность    между наименьшим положительным элементом и наибольшим отрицательным элементом.
вот сама задача.максимальный находил,минимальный не получалось.
Faridik вне форума Ответить с цитированием
Старый 25.07.2011, 23:30   #17
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Например, так можно:
Код:
n=5;
int a[]={6,2,0,-5,-1};
for (i=0;i<n;i++)
   if a[i]>0 
   {
       min=a[i];
       break;
   }
for (i=1; i<n; i++)
   if (a[i]<min && a[i]>0)
      min=a[i];
System.out.println(min);
Или так:
Код:
n=5;
int a[]={6,2,0,-5,-1};
min=-1;
for (i=0;i<n;i++)
{
   if (min==-1)
      if (a[i]>0)
         min=a[i];
   else
      if (a[i]<min && a[i]>0)
      min=a[i];
System.out.println(min);
Джаву, если что, тоже не знаю.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 25.07.2011 в 23:33.
Alex11223 вне форума Ответить с цитированием
Старый 25.07.2011, 23:45   #18
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

А этот код должен работать быстрее:
Код:
        int i,n,min,k;
        n=5;
        int a[] = {6,2,0,-5,-1};
        for (i = 0; i < n; i++)
            if (a[i] > 0)
            {
              min = a[i];
              for (k = i; k < n; k++)
                if (a[k] < min && a[k] > 0)
                  min = a[k];
              break;    
            }
        System.out.println(min);
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 26.07.2011 в 01:18.
MyLastHit вне форума Ответить с цитированием
Старый 27.07.2011, 22:32   #19
Faridik
Форумчанин
 
Аватар для Faridik
 
Регистрация: 08.08.2008
Сообщений: 117
По умолчанию

Код:
int a,b,c,s;
      for (s=100;s<1000;s++)
      a=s%10;
      b=s%100;
      c=s%1000;
      if (a+b+c==s)
      {
      System.out.println(s);
Почему тут он хочет первоначальной инициализации а,b,с.Я же присваиваю им значение через s.
Faridik вне форума Ответить с цитированием
Старый 27.07.2011, 23:11   #20
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Мб только для б и с? Вы { } забыли в for.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос начинающего по компилятору Tmod Софт 7 28.08.2010 22:10
Вопрос от начинающего ProGus Microsoft Office Excel 1 10.08.2010 14:30
Инструментарий начинающего... Всеслав Общие вопросы C/C++ 6 24.12.2008 15:39
Портфолио начинающего программиста С++ Марья Свободное общение 1 12.06.2008 08:16