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

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

Войти
Регистрация
Восстановить пароль
 
Акинак
1 / 1 / 0
Регистрация: 19.06.2011
Сообщений: 6
#1

Указатели с++ - C++

19.06.2011, 21:09. Просмотров 746. Ответов 2
Метки нет (Все метки)

Здравствуйте. У меня такая проблема. Осталась последняя лабораторная по информатике. Условие такое:
"В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) Количество элементов, равных 0;
2) Сумму элементов, расположенных после минимального элемента;
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
#include<iostream>
#include<conio.h>
#include<time.h>
using namespace std;
int main() 
{
srand(time(0));
const int m=10;
int i, j, n, n1, x, s;
int a[m], b[m];
for(i=0;i<m;i++)
    {   a[i]=rand()%11-5; b[i]=a[i];
        cout<<"["<<i+1<<"] = "<<a[i]<<endl;
    }
n1=0;
n=a[0];
s=0;
for(i=0;i<m;i++)
    {   if (a[i]==0) n1+=1;
        if (a[i]<=n) {n=a[i]; x=i; }
    }
cout<<"Kolichestvo nulevyh = "<<n1<<endl;
for(i=x;i<m-1;i++) 
    { 
        s+=a[i+1];
    }
cout<<"Summa = "<<s<<endl;
for(i=0;i<m;i++)
          { for (j=0;j<m-1;j++)
               { if (b[i]<b[j])
                   { x=b[i]; b[i]=b[j]; b[j]=x; }
                }
}
for(j=0;j<m;j++) cout<<"["<<j+1<<"] "<<b[j]<<endl;
getch();
return 0;
}
Где и как нужно использовать указатели? Просто я эту область языка вообще не знаю. Заранее благодарен

 Комментарий модератора 
Используйте теги форматирования кода!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2011, 21:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатели с++ (C++):

Указатели и указатели на указатели, а также типы данных - C++
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Через указатели на указатели посчитать сумму двух чисел и записать в третье - C++
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать примитивный калькулятор, пользуясь только...

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной - C++
Мой код. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include&lt;iomanip&gt; using namespace std; void min_max(int*pa, int*pb,...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? - C++
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...

Отсортировать массив и вывести на экран (массивы и указатели на указатели) - C++
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s- результат сессии F студента. Отсортировать массив S по...

Указатели на слонов или А зачем нужны указатели? - C++
Знаю что таких вопросов было уйма, но я так и не нашел ответа на свой вопрос. Для чего нужны указатели? Что такое указатели я знаю, это...

2
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
19.06.2011, 21:36 #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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
#include <algorithm>
using namespace std;
#define  COUNT(sz1)    sizeof(sz1) / sizeof(float)
 
 
 
int   main(void) {
 
    float   arr[] = { 0.7f, 3.14f, 0.0f, -99.55f, 0.0f, 4.2f, 2.33f, 0.0f, 3.3333f, 9.9f,  0.0f };
    const float*  first  = arr;
    const float*  last  = arr + COUNT(arr);
 
           // подсчитываем нули
    int cnt_zero = 0;
    while( first != last ) {
            if( *first == 0.0f )
                 ++cnt_zero;
            *first++;
    }
    cout << "count zero: " << cnt_zero << endl;
 
 
    // суммируем после наименьшего элемента
    first = arr;
    last = arr + COUNT(arr);
    float  tmp = *first;
    const float*  pos = NULL;
 
    while( first != last ) {
        if( *first < tmp ) {
            tmp = *first;
            pos = first;
        }
        *first++;
    }
    if(pos) {
            float  sum = 0.0f;
            for(pos = pos + 1; pos != last; *pos++ )
                   sum += *pos;
            cout << "min sum: " << sum << endl;
    }
 
 
    // сортируем по-возрастанию
    while(1) {
            float*  a    = arr;
            float*  b    = arr + 1;
            short test = 0;
            for(int sz = COUNT(arr) - 1; sz-- ; ++a, ++b) {
                if( *a > *b ) {
                     float    sv = *a;
                     *a = *b;
                     *b = sv;
                     test = 1;
                }
            }
            if(! test)
                break;
    }
    copy(arr, arr + COUNT(arr), ostream_iterator<float>(cout, ", "));  // выводим в консоль
 
return (0);
}
0
Акинак
1 / 1 / 0
Регистрация: 19.06.2011
Сообщений: 6
19.06.2011, 23:32  [ТС] #3
Эмм. Честно, не очень понятно. Можно чуть поподробнее?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2011, 23:32
Привет! Вот еще темы с ответами:

Написать программу сортировки через указатели на указатели - C++
Вот моя программа #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace std; //Сортировка &quot;пузырьком&quot;. ...

Используются ли на практике указатели на указатели объектов? - C++
Имеются ввиду указатели именно на объекты, а не динамические массивы. Например такой: Object** obj; А как насчёт такого: Object***...

Указатели на массивы. Указатели и функции - C++
Вот задача: Даны два массива : А и B. Необходимо создать третий массив, в котором нужно собрать: -Элементы обоих массивов; -Общие...

Константные указатели и указатели на константу - C++
Чем они, собственно говоря, отличаются? Поясните, пожалуйста. Не знаю, как так получилось, что в разных источниках - разные...


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

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

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