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

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

Войти
Регистрация
Восстановить пароль
 
keep-it-real
25 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 47
#1

Получить первые n-минимальных элементов массива,используя указатели - C++

15.02.2012, 16:51. Просмотров 609. Ответов 7
Метки нет (Все метки)

Дан массив.Получить первые n-минимальных элементов массива,используя указатели. Как лучше реальзовать? На уровне начинающего человека, изучающего си
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2012, 16:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получить первые n-минимальных элементов массива,используя указатели (C++):

Для двумерного массива с M * N чисел получить вектор с минимальных элементов каждого столбца - C++
Для двумерного массива с M * N чисел получить вектор с минимальных элементов каждого столбца и вектор из номеров строк, в...

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

Вычислить величину Z, которая равняется сумме минимальных элементов массивов, разделенной на двойное произведение индексов минимальных элементов - C++
Заданы два массива - Х(10) и Y(12). Вычислить величину Z, которая равняется сумме минимальных элементов массивов, разделенной на двойное...

Создание 2D массива из объектов, используя указатели - C++
Помогите решить простую задачу. Нужно создать 2х мерный массив из объектов. Каждый объект это точка с координатой x and y. Массив должен...

Просуммировать элементы массива используя указатели - C++
III. Создайте 5 елементный статический массив переменных типа int и заполните его произвольными значениями. Затем создайте указатель,...

Одномерные массивы и указатели (найти количество элементов массива, равных 0, сумму элементов массива...) - C++
Помогите пожалуйста разработать программу и реализовать интуитивный понятный интерфейс (используя формы).При написании программы можно...

7
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
15.02.2012, 16:52 #2
keep-it-real, отсортировать массив по возрастанию. вывести элементы с 0 по n
0
keep-it-real
25 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 47
16.02.2012, 09:37  [ТС] #3
сделала что-то типа того, что вы сказали, но без указателей, не знаю как с ними, подскажите, не судите строго, только начинаю учиться
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
#include<stdio.h>
#include<math.h>
int main (void)
 {
  float a[10],b[10],c;
  int i,n,j,k,p,t;
 
  while(1)
   {
    printf("\n vvedite kolihestvo elementov massiva\n");
    scanf("%d",&k);
    if((k>0) && (k<=10))
    break;
    printf("\n oshibka\n");
   }
 
  for(i=0;i<k;i++)
   {
    printf("\n vvedite a[%d]",i);
    scanf("%f",&a[i]);
   }
 
  do
   { for(i=0,t=0;i<k-1;i++)
      if(a[i]>a[i+1])
       { c=a[i];
         a[i]=a[i+1];
         a[i+1]=c;
         t=1;
       }
      n--;
   }
  while(t>0);
 
  for(i=0;i<k;i++)
   printf("\n a[%d]=%3.0f",i,a[i]);
 
  printf("\n vvedite kolihectvo min elementov");
  scanf("%d",&n);
 
  for(i=0,j=0,p=n;i<k && p>0;i++)
   if(a[i]!=a[i+1])
    { b[j]=a[i];
   j++;
      p--;
    }
 
  for(j=0;j<n;j++)
   printf("\n b[%d]=%3.0f\n",j,b[j]);
  return 0;
  }
Добавлено через 11 часов 28 минут
никто не подскажет?
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
16.02.2012, 10:03 #4
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
#include <stdio.h>
#include <stdlib.h>
 
int compare(const void* a, const void* b)
{
    return (*(const double*) a) - (*(const double*) b);
}
 
int main(void)
{
    size_t array_size;
    size_t min_count;
    size_t i;
    
    double* array;
 
    printf("Input the size of the array: ");
    scanf("%u", &array_size);
 
    array = malloc(sizeof(double) * array_size);
 
    for(i = 0; i < array_size; ++i)
    {
    printf("%02u> ", i + 1);
    scanf("%lf", &array[i]);
    }
 
    qsort(array, array_size, sizeof(double), compare);
 
    printf("Input the number of min elements: ");
    scanf("%u", &min_count);
 
    if(min_count > array_size)
    {
    fprintf(stderr, "The number of min elements mustn't be"
        " greater than %u; given %u\n", array_size, min_count);
    exit(1);
    }
 
    for(i = 0; i < min_count; ++i)
    printf("[%02u] -> %.3f\n", i + 1, array[i]);
 
    free(array);
    
    exit(0);
}
0
keep-it-real
25 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 47
26.02.2012, 17:47  [ТС] #5
а реально сделать прогу на уровне более простом, т.е. без использования таких вещей как qsort,fprintf(stderr, , array_size, min_count);, compare(,) итд?! т.е. важен сам алгоритм и использование указателей, т.е. что-то типа того, что скидывала, только с указателями?
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
26.02.2012, 19:44 #6
keep-it-real, реально
0
keep-it-real
25 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 47
26.02.2012, 20:08  [ТС] #7
Nameless One, можете, помочь? вот мой код подходит? что следует там изменить, чтобы получить желаемое? спасибо
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
27.02.2012, 01:35 #8
Цитата Сообщение от keep-it-real Посмотреть сообщение
вот мой код подходит? что следует там изменить, чтобы получить желаемое?
по сути да, т.к. статический «массив» уже сам по себе является указателем. Единственное, чтобы использование указателей было более явным, я бы перешел от статических массивов, размер которых определен на этапе компиляции (из чего следует, что твоя программа может обрабатывать массивы размером не больше 10 элементов), к динамическим, память под которые выделяется во время выполнения программы (см. строки 20, 43 моего кода)
0
27.02.2012, 01:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 01:35
Привет! Вот еще темы с ответами:

Используя рекурсивную функцию, выдать первые n элементов последовательности - C++
Помогите пожалуйста! Рекурсия моя слабость! Вот задание: Используя рекурсивную функцию, выдать первые n элементов последовательности...

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

Поменять элементы массива местами используя указатели - C++
Указатель не должен менять своего значения

В одномерном массива найти элементы кратные 3, используя указатели - C++
Нужно переделать программу используя указатели. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main(int...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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