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

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

Восстановить пароль Регистрация
 
VAAADIM
2 / 2 / 1
Регистрация: 14.10.2013
Сообщений: 47
21.10.2013, 00:22     Указатели #1
Программа работает через переменные, нужно изменить её так что бы она работала через указатели.
Массив статический

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
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
 
int main(int argc, char *argv[])
{   const int n = 30;
    int a, b;
    cout << "Input A" << endl;
    cin >> a;
    cout << endl << "Input B" << endl;
    cin >> b;
    int array[n]; // объявляем массив длиной n
    cout << endl << endl << "N = " << n << endl;
    cout << endl << endl << "A = " << a << endl;
    cout << endl << endl << "B = " << b << endl;
    cout << "Array:" << endl;
    for (int i=0;i<n;i++) // генерируем числа в нужном промежутке и выводим на экран
    {
        array[i] = rand() % (b-a+1) + a;
        cout << "array[" << i << "] = " << array[i] << "\t";
    }
    int min = 0; // в min храним индекс минимального элемента, изначально 
    for (int i=0;i<n;i++)
    {
        if (abs(array[i]) < abs(array[min])) min = i; // сравниваем элемент с минимальным
    }
    cout << "minimal element: array[" << min << "] = " << array[min] << endl;
    int summ = 0;
    int c = 0;
    while (array[c]!=0 && c < n) c++; // ползем до первого 0 в массиве
    if (c < n) // если ноль нашелся, считаем сумму
    {
        for (int i=c+1;i<n;i++) summ += array[i];
        cout << "Summa (" << c+1 << ".." << n-1 << ") = " << summ << endl;
    }
    else // если нет, выводим извещение
    {
        cout << "Not find 0" << endl; 
    }
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2013, 00:22     Указатели
Посмотрите здесь:

C++ Указатели
Указатели.... C++
C++ Указатели
Указатели C++
Указатели. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
21.10.2013, 00:26     Указатели #2
Цитата Сообщение от VAAADIM Посмотреть сообщение
array[c]
фактически *(array+с)
VAAADIM
2 / 2 / 1
Регистрация: 14.10.2013
Сообщений: 47
21.10.2013, 00:27  [ТС]     Указатели #3
Цитата Сообщение от MrGluck Посмотреть сообщение
фактически *(array+с)
Если можно в программу перепиши, а то я с этим сооовсем не дружу)
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
21.10.2013, 00:32     Указатели #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
47
#include <iostream>
#include <conio.h>
#include <cmath>
#include <ctime>
using namespace std;
 
 
int main()
{   const int n = 30;
    int a, b;
    cout << "Input A" << endl;
    cin >> a;
    cout << endl << "Input B" << endl;
    cin >> b;
    int array[n]; // объявляем массив длиной n
    cout << endl << endl << "N = " << n << endl;
    cout << endl << endl << "A = " << a << endl;
    cout << endl << endl << "B = " << b << endl;
    cout << "Array:" << endl;
 
    srand(time(0));
    for (int i=0;i<n;i++) // генерируем числа в нужном промежутке и выводим на экран
    {
        *(array + i) = rand() % (b-a+1) + a;
        cout << "array[" << i << "] = " << *(array + i) << "\t";
    }
    int *min = array; // в min храним индекс минимального элемента, изначально
    for (int i=0;i<n;i++)
    {
        if (abs(*(array + i)) < abs(*min)) min = array + i; // сравниваем элемент с минимальным
    }
    cout << "minimal element = " << *min << endl;
    int summ = 0;
    int c = 0;
    while (*(array + c)!=0 && c < n) c++; // ползем до первого 0 в массиве
    if (c < n) // если ноль нашелся, считаем сумму
    {
        for (int i=c+1;i<n;i++) summ += *(array + i);
        cout << "Summa (" << c+1 << ".." << n-1 << ") = " << summ << endl;
    }
    else // если нет, выводим извещение
    {
        cout << "Not find 0" << endl;
    }
    _getch();
    return 0;
}
VAAADIM
2 / 2 / 1
Регистрация: 14.10.2013
Сообщений: 47
21.10.2013, 00:40  [ТС]     Указатели #5
БОЛЬШОЕ СПАСИБО
Yandex
Объявления
21.10.2013, 00:40     Указатели
Ответ Создать тему
Опции темы

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