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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2009, 00:20   #1
Lexeres
Новичок
Джуниор
 
Регистрация: 15.11.2009
Сообщений: 54
По умолчанию Задание - Поиск на Си

Вот само задание

"Дан линейный массив A[1..N], содержащий целые числа.
Найти те элементы массива, которые находятся между минималь-
ным и максимальным."

Без понятия как решать, чуть не посорился с преподом, ну вообще никак не может толком объяснить как делать, а ещё и гонит на нас, что мы не так делаем. А ещё нужно отчёт принести в ближайшие дни, а вот без этого задания никак...
Плз, помогите сделать..

p.s. сделать нужно методом выбора

Последний раз редактировалось Lexeres; 20.11.2009 в 00:28.
Lexeres вне форума Ответить с цитированием
Старый 20.11.2009, 00:58   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Что это за метод выбора?

А вообще нужно найти минимальный и максимальный елементы масива, и вывести все что между ними.

Код:
#include <stdio.h>

int main()
{
  const int X = 9;
  int min = 999, max = -1;
  int array[X] = {9, 2, 3, 1, 3, 7, 5, 3, 0}; // 1 = min; 7 = max;

  // Нахождение минимального элемента
  for (int i = 0; i < X; i++)
    if ((array[i] < min) && (i != X)) min = i;
  
  // Нахождение максимального элемента
  for (int i = 0; i < X; i++)
    // Если макс. эл. находится между min и max
    if (array[i] > max && i >= min) max = i;
  
  // Если эл. стоят рядом, то скажем что нет чисел.
  if (max == (min + 1))
  {
    puts("Max value not found");
    return 1;
  }
  else
  {
  // Если есть выводим значения между min и max
  printf("Values between min & max\n min=%d, max=%d\n", min, max);

    for (int i = min; i <= max; i++)
      printf("%d\t", array[i]);

    puts("\n");
  }

  return 0;
}
Вот, что то вроде. Если есть ошибки сам надеюсь исправишь
psycho-coder вне форума Ответить с цитированием
Старый 20.11.2009, 17:03   #3
Lexeres
Новичок
Джуниор
 
Регистрация: 15.11.2009
Сообщений: 54
По умолчанию

Спасибо, конечно, но можно как нибудь попроще и без puts (мы просто этого не проходили и препод сразу начнёт обо мне сомневаться насчёт того, что это я сделал :D
Lexeres вне форума Ответить с цитированием
Старый 20.11.2009, 17:09   #4
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 525
По умолчанию

что может быть проще десятка строк стандартных операторов?
а вместо путса самому написать тот же принтФ религия не позволяет?
m0nax вне форума Ответить с цитированием
Старый 20.11.2009, 22:49   #5
Lexeres
Новичок
Джуниор
 
Регистрация: 15.11.2009
Сообщений: 54
По умолчанию

ну извините, я только на 1 курсе и ещё не знаю что такое puts ....
Lexeres вне форума Ответить с цитированием
Старый 23.11.2009, 15:55   #6
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от Lexeres Посмотреть сообщение
ну извините, я только на 1 курсе и ещё не знаю что такое puts ....
Замени
Код:
...
 puts("Max value not found");
...
 puts("\n");
на
Код:
...
 printf("Max value not found\n");
...
 printf("\n");
psycho-coder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задание на С++ Sergius X Помощь студентам 1 24.10.2009 23:23
задание на С blackbanny Помощь студентам 2 15.10.2009 09:39
Задание / Си Drozvd Помощь студентам 6 11.08.2009 06:33
Задание $ user570 Фриланс 3 15.06.2008 22:11