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

Переделать код так, чтобы использовались диапазоны значений с помощью указателей - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа для считывания содержимого директории (Си -> Си++) http://www.cyberforum.ru/cpp-beginners/thread860063.html
#include <stdio.h> #include <dirent.h> int main(int argc, char ** argv) { DIR * d; struct dirent * entry; if (argc != 2) { printf("Использование: %s <директория>\n", argv); return 0;
C++ Передвижение графических объектов на языке С++ Здравствуйте. Помогите пожалуйста создать программу для решения задачи перемещения круга, вписанного в прямоугольник, по диагонали с заданным шагом и задержкой в полторы секунды... Программа должна содержать новые классы (включая абстрактные), конструкторы и деструкторы, поддерживать наследование, полиморфизм и видимость компонент. Буду очень благодарна за помощь.заранее спасибо огромное!) http://www.cyberforum.ru/cpp-beginners/thread860049.html
C++ Определение количества символов в тексте
Во входном файле text.txt содержится текст на английском языке. Требуется написать программу, которая будет определять и выводить на экран английскую букву, встречающуюся в этом тексте чаще всего, и количество таких букв.Если искомых букв несколько, то программа должна вывести ту из них,которая идет раньше по алфавиту. Проблема в объявлении цикла проверки. ЧЯДНТ? #include "stdafx.h"...
Подсчет букв "и" во введенной строке C++
помогите составить программу.
C++ В С++ может ли argv быть двухмерным массивом? http://www.cyberforum.ru/cpp-beginners/thread860024.html
int main(int argc, char *argv) { argv = tolower(argv); argv = tolower(argv); Вот что это означает? Когда у argv с двумя аргументами?
C++ как вернуть массив и как неявно получить атрибут объекта хочу спросить как из функции вернуть массив int g(void){ int a; //как-то его заполнить return a; } массив не хочет возвращять подробнее

Показать сообщение отдельно
faradej
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 67
10.05.2013, 13:18     Переделать код так, чтобы использовались диапазоны значений с помощью указателей
Мне уже стыдно сюда писать ей богу . Но есть задача переделать Код№1 так чтобы использовались диапазоны значений с помощью указателей. А функция fill_array() должна возвращать следующий адрес после последнего введенного значения, и это значение должны принимать другие функции как количество элементов функций которые они должны обработать. Код№2 это что я пробовал, но там выводятся адреса вместо значений, в общем все неправильно.

Код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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// arrfun3.cpp -- array functions and const
#include <iostream>
const int Max = 5;
 
// function prototypes
int fill_array(double ar[], int limit);
void show_array(const double ar[], int n);  // don't change data
void revalue(double r, double ar[], int n);
 
int main()
{
    using namespace std;
    double properties[Max];
 
    int size = fill_array(properties, Max);
    show_array(properties, size);
    if (size > 0)
    {
        cout << "Enter revaluation factor: ";
        double factor;
        while (!(cin >> factor))    // bad input
        {
            cin.clear();
            while (cin.get() != '\n')
                continue;
           cout << "Bad input; Please enter a number: ";
        }
        revalue(factor, properties, size);
        show_array(properties, size);
    }
    cout << "Done.\n";
    // cin.get();
    // cin.get();
    return 0;
}
 
int fill_array(double ar[], int limit)
{
    using namespace std;
    double temp;
    int i;
    for (i = 0; i < limit; i++)
    {
        cout << "Enter value #" << (i + 1) << ": ";
        cin >> temp;
        if (!cin)    // bad input
        {
            cin.clear();
            while (cin.get() != '\n')
                continue;
           cout << "Bad input; input process terminated.\n";
           break;
        }
        else if (temp < 0)     // signal to terminate
            break;
        ar[i] = temp;
    }
    return i;
}
 
// the following function can use, but not alter,
// the array whose address is ar
void show_array(const double ar[], int n)
{
    using namespace std;
    for (int i = 0; i < n; i++)
    {
        cout << "Property #" << (i + 1) << ": $";
        cout << ar[i] << endl;
    }
}
 
// multiplies each element of ar[] by r
void revalue(double r, double ar[], int n)
{
    for (int i = 0; i < n; i++)
        ar[i] *= r;
}
Код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
65
66
67
68
69
70
71
72
73
74
const int Max = 5;
 
// function prototypes
int * fill_array(int * begin, int * end);
void show_array(int * begin, int * end);  // don't change data
void revalue(int r, int * begin, int * end);
 
int main()
{
    using namespace std;
    int properties[Max];
 
    int * size = fill_array(properties, properties + Max);
    show_array(properties, size);
    if (size > 0)
    {
        cout << "Enter revaluation factor: ";
        int factor;
        while (!(cin >> factor))    // bad input
        {
            cin.clear();
            while (cin.get() != '\n')
                continue;
           cout << "Bad input; Please enter a number: ";
        }
        revalue(factor, properties, size);
        show_array(properties, size);
    }
    cout << "Done.\n";
    // cin.get();
    // cin.get();
    return 0;
}
 
int * fill_array(int * begin, int * end)
{
    using namespace std;
    int * temp;
    for (begin; begin < end; begin++)
    {
        cout << "Enter value #" << begin << ": ";
        cin >> begin;
        if (!cin)    // bad input
        {
            cin.clear();
            while (cin.get() != '\n')
                continue;
           cout << "Bad input; input process terminated.\n";
           break;
        }
        else if (temp < 0)     // signal to terminate
            break;
    }
    return begin + 1;
}
 
// the following function can use, but not alter,
// the array whose address is ar
void show_array(int * begin, int * end)
{
    using namespace std;
    for (begin; begin < end; begin++)
    {
        cout << "Property #" << (begin + 1) << ": $";
        cout << begin << endl;
    }
}
 
// multiplies each element of ar[] by r
void revalue(int r, int * begin, int * end)
{
    for (begin; begin<end; begin++)
        *begin *= r;
}
Добавлено через 3 часа 36 минут
ап

Добавлено через 15 часов 22 минуты
Так что, это нельзя реализовать данным методом?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru