Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
#1

с использованием массивов (minmax) - C++

07.10.2009, 15:21. Просмотров 903. Ответов 11

Задачу надо написать на С. ( плз помогите )
Дано целое число N и набор из N целых чисел. Найти количество элементов, содержащихся между первым и последним максимальным элементом. Если в наборе единственный максимальный элемент, то вывести 0.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2009, 15:21     с использованием массивов (minmax)
Посмотрите здесь:

с использованием массивов (array) - C++
Задачи надо написать на С. 1) - Дан массив A размера N. Вывести вначале его элементы с чётными номерами ( в порядке возрастания...

Программа с использованием массивов - C++
Задали сделать программу с массивами. Практики с применением массивов небыло. И я с ними не знаком. Помогите пожалуйста. П.5.18.Правил ...

Функция с использованием массивов - C++
Помогите написать функцию,которая вставляет элементы в монотонно возрастающую последовательность с сохранением сортировки!

Обработка массивов с использованием подпрограмм - C++
Составить программу для решения задач, с обязательным использованием подпрограммы для ввода матрицы с экрана, ее обработки и вывода на ...

Обработка массивов с использованием подпрограмм - C++
Из каждого элемента матрицы А(3,3) вычесть произведение ее нечетных отрицательных эллементов

Обработка массивов с использованием подпрограмм - C++
Прошу помощи! Ввести одномерные массивы X1n1, X2n2 и X3n3 и определить в каждом из них среднее арифметическое отрицательных элементов....

Написать функцию с использованием массивов.. - C++
Которая вставляет элементы в монотонно возрастающую последовательность с сохранением сортировки

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
07.10.2009, 17:22     с использованием массивов (minmax) #2
Вот код. Предупреждаю, можно сделать и лучше (причем на много)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
 
#define N 10
 
int main()
{
    bool bFlag = false;
    int arr[N], j[2], max = 0;
    printf("Enter %d numbers:\n", N);
 
    for(int i = 0; i < N; i++)
    {
        printf("%d> ", i + 1);
        scanf("%d", &arr[i]);
 
        arr[i] > max ? max = arr[i], j[0] = i + 1 : NULL;
    }
 
    for(int i = j[0]; i < N; i++)
    {
        if(arr[i] == max)
        {
            bFlag = true;
            j[1] = i - 1;
        }
    }
 
    printf("Result: ");
 
    if(bFlag)
    {
        for(int i = j[0]; i <= j[1]; i++)
            printf("%d ", arr[i]);
    }
    else
        printf("0");
 
    printf("\n");
    return 0;
}

Не по теме:

Твой ник мне напомнил "Доктора ЛеКряка.". Это утка такая из мультика "Кураж - трусливый пес".

Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
07.10.2009, 18:17  [ТС]     с использованием массивов (minmax) #3
Спасибо ; мой ник- это имя персонажа из одной книги, а не из неизвестного мультика

Добавлено через 18 минут
что значит bool bFlag = false;
max ? max а то я не наю такое?
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
07.10.2009, 18:28     с использованием массивов (minmax) #4
почему создали 2 раза одну и тоже тему7
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
07.10.2009, 18:29  [ТС]     с использованием массивов (minmax) #5
кто создал одну и ту же тему ? о_О я не создавал. не понял о чём вы
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
07.10.2009, 19:11     с использованием массивов (minmax) #6
Цитата Сообщение от Лестат Посмотреть сообщение
что значит bool bFlag = false;
Это значит объявление булевой переменной bFlag и инициализация ее логическим нулем

Цитата Сообщение от Лестат Посмотреть сообщение
max ? max а то я не наю такое?
вообще-то
Код
<условие> ? <Если ДА> : <Если НЕТ>
например,
C++
1
2
3
4
5
6
 a<b?a=1:a=2;
//аналогично следущему:
  if(a<b)
    a=1;
  else
    a=2;
в коде Search.., кроме того, используется операция запятая, что аналогично следующему:
C++
1
2
3
4
5
6
7
// arr[i] > max ? max = arr[i], j[0] = i + 1 : NULL; можно записать так:
  if(arr[i] > max)
  {
    max = arr[i];
    j[0] = i + 1;
  }
// NULL означает, что если условие arr[i] > max не выполняется, делать ничего не надо
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
07.10.2009, 19:14  [ТС]     с использованием массивов (minmax) #7
спасибо, но можно ли как-нибудь без bool bFlag ?
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
07.10.2009, 19:23     с использованием массивов (minmax) #8
Можно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
 
#define N 10
 
int main()
{
        int arr[N], j[2], max = 0;
        printf("Enter %d numbers:\n", N);
 
        for(int i = 0; i < N; i++)
        {
                printf("%d> ", i + 1);
                scanf("%d", &arr[i]);
 
                arr[i] > max ? max = arr[i], j[0] = i + 1 : NULL;
        }
        j[1]=0;
        for(int i = j[0]; i < N; i++)
        {
                if(arr[i] == max)
                        j[1] = i - 1;
        }
 
        printf("Result: ");
 
        if(j[1])
        {
                for(int i = j[0]; i <= j[1]; i++)
                        printf("%d ", arr[i]);
        }
        else
                printf("0");
 
        printf("\n");
        return 0;
}
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
07.10.2009, 19:32  [ТС]     с использованием массивов (minmax) #9
18 ошибок. о_О
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
07.10.2009, 19:36     с использованием массивов (minmax) #10
Цитата Сообщение от Лестат Посмотреть сообщение
18 ошибок. о_О
Ох, ты еще не видел код, который мне дал один чувак. Короче начал я компилировать этот код... Так там было более 2000 ошибок, ыыы
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
07.10.2009, 19:37  [ТС]     с использованием массивов (minmax) #11
ого о_О
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2009, 20:48     с использованием массивов (minmax)
Еще ссылки по теме:

Матрица с использованием двухмерных массивов - C++
Добрый день. Нужна помощь в написании программы. Дана матрица размера M х M. Найти все положительные элементы матрицы. Элементы я должен...

Программы с использованием динамических массивов и указателей - C++
Написать программы с использованием динамических массивов и указателей. Начальные размерности массивов ввести с клавиатуры. Применение в...

Обработка массивов структур с использованием контейнеров - C++
Вариант 13 Написать программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах включают: □ номер УДК; ...

Обработка одномерных массивов с использованием указателей - C++
Помогите эту программу переделать чтобы было с указателем составить программу заданной обработки массива целых чисел с...

Перемножение матриц с использованием динамических массивов - C++
Всем здравствуйте) Программа не считает матрицу С (С=A*B). В чём дело не понимаю. #include &lt;iostream&gt; #include &lt;conio.h&gt; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
07.10.2009, 20:48     с использованием массивов (minmax) #12
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
 
// Дано целое число n и набор из N целых чисел. 
// Найти количество элементов, содержащихся между первым и 
// последним максимальным элементом. Если в наборе единственный 
// максимальный элемент, то вывести 0.
 
#define N 10
 
int main()
{
  int i,j, n, max=-2147483647;
  int numMaxFirst, count=0;
  int *arr;
  printf("Enter numbers:");  // вводим количество элементов
  scanf("%d",&n);
  // выделяем память под n элементов
  arr=(int *)calloc(n, sizeof(int));        
 
  
  for(i = 0; i < n; i++)
  { // вводим элементы с клавиатуры
    printf("input element %d: ", i + 1);   scanf("%d", &arr[i]);   
    
    if(arr[i]>max)
    { // если элемент больше максимального запоминаем его для сравнения      
      max=arr[i]; 
      numMaxFirst=i;// и запоминаем его позицию
    }
  }
  
  // ищем с конца максимальный элемент
  for(i = n; i>=0; --i)
  {
    if(arr[i] == max) // нашли максимальный элемент
    {
      if (i==numMaxFirst) // позиция совпала с уже имеющимся значит
      { //  максимальный элемент один
        printf("\none max element:0"); 
      }
      else  // иначе
      { // считаем количество
        for(j = numMaxFirst+1; j < i; j++)
          count++;
        printf("\nnumber elemen between max:%i ", count);
      }
      break;
    }
    
  }
   getch();
  return 0;
}
Yandex
Объявления
07.10.2009, 20:48     с использованием массивов (minmax)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru