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

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

Восстановить пароль Регистрация
 
keep-it-real
25 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 47
15.02.2012, 16:51     Получить первые n-минимальных элементов массива,используя указатели #1
Дан массив.Получить первые n-минимальных элементов массива,используя указатели. Как лучше реальзовать? На уровне начинающего человека, изучающего си
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2012, 16:51     Получить первые n-минимальных элементов массива,используя указатели
Посмотрите здесь:

Составить программу обработки двухмерного массива используя указатели и функции... C++
Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7 C++
Используя рекурсивную функцию, выдать первые n элементов последовательности, которые больше заданного числа m C++
C++ Используя рекурсивную функцию, выдать первые n элементов последовательности
Поменять местами элементы массива с четными и нечетными индексами используя указатели C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
15.02.2012, 16:52     Получить первые n-минимальных элементов массива,используя указатели #2
keep-it-real, отсортировать массив по возрастанию. вывести элементы с 0 по n
keep-it-real
25 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 47
16.02.2012, 09:37  [ТС]     Получить первые n-минимальных элементов массива,используя указатели #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 минут
никто не подскажет?
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
16.02.2012, 10:03     Получить первые n-минимальных элементов массива,используя указатели #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);
}
keep-it-real
25 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 47
26.02.2012, 17:47  [ТС]     Получить первые n-минимальных элементов массива,используя указатели #5
а реально сделать прогу на уровне более простом, т.е. без использования таких вещей как qsort,fprintf(stderr, , array_size, min_count);, compare(,) итд?! т.е. важен сам алгоритм и использование указателей, т.е. что-то типа того, что скидывала, только с указателями?
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
26.02.2012, 19:44     Получить первые n-минимальных элементов массива,используя указатели #6
keep-it-real, реально
keep-it-real
25 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 47
26.02.2012, 20:08  [ТС]     Получить первые n-минимальных элементов массива,используя указатели #7
Nameless One, можете, помочь? вот мой код подходит? что следует там изменить, чтобы получить желаемое? спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 01:35     Получить первые n-минимальных элементов массива,используя указатели
Еще ссылки по теме:

C++ Вычислить величину Z, которая равняется сумме минимальных элементов массивов, разделенной на двойное произведение индексов минимальных элементов
C++ Просуммировать элементы массива используя указатели
В одномерном массива найти элементы кратные 3, используя указатели C++

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
27.02.2012, 01:35     Получить первые n-минимальных элементов массива,используя указатели #8
Цитата Сообщение от keep-it-real Посмотреть сообщение
вот мой код подходит? что следует там изменить, чтобы получить желаемое?
по сути да, т.к. статический «массив» уже сам по себе является указателем. Единственное, чтобы использование указателей было более явным, я бы перешел от статических массивов, размер которых определен на этапе компиляции (из чего следует, что твоя программа может обрабатывать массивы размером не больше 10 элементов), к динамическим, память под которые выделяется во время выполнения программы (см. строки 20, 43 моего кода)
Yandex
Объявления
27.02.2012, 01:35     Получить первые n-минимальных элементов массива,используя указатели
Ответ Создать тему
Опции темы

Текущее время: 06:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru