Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 21

не могу сделать программу с указателями на массив и с функцией

21.10.2012, 21:13. Показов 1167. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
такая "беда"
впервые столкнулся с указателями,в них чайник..
вот код
задание--вывести массив,сделать так,чтоб к этому массиву прибавить по 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
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
 
void procedure (int *pArray) {//v funkci'u peredaetsa ukazatel' na massiv
int array[2];
for (int r=0;r<2;r++) {
array[r]=array[r]+1;
}
}
 
int main(int nNumberofArgs, char* pszArgs[]) {
int array[2];
int* pArray; //sozdanie ukazatel'a
pArray = array; //adres v ukazatel'
 
void procedure (int *);//prototip
 
cout«"vvod elementov"«endl;
for (int i=0;i<2;i++) {
cin»array[i];
}
cout«"vivod elementov"«endl;
 
for(int pArray = 0;pArray<2; pArray++) {
cout«array[pArray]«endl;
}
return 0;
}
как нужно изменить что-то,чтобы это все заработало?как примерно такая функция будет выглядеть?и ещё--возможно,не знаю,как сделать так,чтобы функция возвращала изменённые значения массива

я не представляю
и нигде не нахожу

ну нигде не нахожу..мб не те книги читаю
прошу если что,не сильно переделывать сам алгоритм.Чужие программы мне сложно читать((
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.10.2012, 21:13
Ответы с готовыми решениями:

Сделать программу с функцией, сортирующей массив
Привет всем, помогите пожалуйста, как переделать этот код, мне нужно чтобы в программе присутствовала функция, в которую нужно передать...

Нужно сделать программу с указателями , из обычной . (Функции)
Нужно сделать программу с указателями , из обычной . Чтобы возвращение переменно происходило при помощи указателя . #include...

Не могу удалить массив слов функцией free()
Столкнулся с проблемой. Есть задача - пользователь вводит количество слов, потом вводит каждое слово. Нужно выделять память для пяти слов...

11
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
21.10.2012, 21:32
Если честно ваш код напоминает бред сумашедшего, я так и не разобрал что он делает=) благо вы дали так сказать ТЗ. Алгоритм как вы и просили не стал переделывать сильно, оставил большую часть на своих местах. Сами действия правильные выбрали, запутались немного. И еще прототип если и делается то вне мэйна....

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
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
 
 
void procedure (int *pArray,int n) {//v funkci'u peredaetsa ukazatel' na massiv
    for (int r=0;r<n;r++) {
        pArray[r]=pArray[r]+1; //или pArray[r]+=1 или pArray[r]++ (возможно только если в массиве pArray хранятся числа + если нужно прибавить 1)
    }
}
 
int main() {
    cout<<"vvod kolvo elementov"<<endl;
    int n;
    cin>>n;
    int* Array=new int [n]; //sozdanie ukazatel'a
    cout<<"vvod elementov"<<endl;
    for (int i=0;i<n;i++) {
        cin>>Array[i];
    }
    procedure(Array,n);
    cout<<"vivod elementov"<<endl;
 
    for(int i = 0;i<n; i++)
        cout<<Array[i]<<endl;
    delete[] Array;
    return 0;
}
1
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 21
21.10.2012, 21:35  [ТС]
чайник,не ругайте сильно)
спасибо,я вам благодарен)удачи вам,всего самого наилучшего)
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
21.10.2012, 21:36
Цитата Сообщение от Kosstudent Посмотреть сообщение
не знаю,как сделать так,чтобы функция возвращала изменённые значения массива
чтобы функция чтото возвращала нужно вместо войд поставить тип переменной/класса со знаком* (* есть правило хорошего тона ибо если передавать/возвращать целые объекты есть несщадно жрать ресурсы компьютера) в вашем случае передается в функцию указатель на память в которой содержится массив, соответственно функция работает с памятью через указатель и возвращать указатель еще раз смысла неимеет
1
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 21
21.10.2012, 21:38  [ТС]
а какие бы вы книги посоветовали бы почитать?адекватные и для чайников
кроме книги с соответствующим названием,Подбельского нашел.Он вроде ничего
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
21.10.2012, 21:38
Цитата Сообщение от Kosstudent Посмотреть сообщение
чайник,не ругайте сильно)
спасибо,я вам благодарен)удачи вам,всего самого наилучшего)
нисколько не ругал вас=) лишь сказал что вы запутались. Почитайте по больше во-первых про выделение памяти динамическим массивам, а также про указатели. а дальше вам попрет =)
0
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 21
21.10.2012, 21:46  [ТС]
хорошо)Большое спасибо вам.Еще раз всего-всего
почитаю,разберусь)никуда не деться от этого

Добавлено через 4 минуты
чуть чуть не то.Я потом разберусь,но если вдруг нет--
ваша функция возвращает только последнее значение массива,увеличенное на 1
а по заданию надо чтобы оба элемента

Добавлено через 1 минуту
аа,стоп
тупанул
все верно
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
21.10.2012, 22:24
Цитата Сообщение от Kosstudent Посмотреть сообщение
а какие бы вы книги посоветовали бы почитать?адекватные и для чайников
кроме книги с соответствующим названием,Подбельского нашел.Он вроде ничего
а чем вам это та не нравится? =)
С++ Для чайников
по моему очень не плохо расписаны отдельные аспекты =)
Если вы имеете ввиду синтаксис язака С++ то меня этому учили в универе и школе, отдельно книг особо не читал =)

могу посоветовать моего препода по информатике
CPROG - о программировании вообще, в том числе на Си/Си++
еще могу предложить данную литературу
Статьи и учебники C++
0
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 21
21.10.2012, 22:37  [ТС]
спасибо)почитаем
ну си++ для чайников хорошая,но просто не всегда содержит все что нужно)одной её недостаточно

Добавлено через 1 минуту
а почему в программе нет прототипа функции?

Добавлено через 9 минут
в мэйне например перед вызовом void procedure (int *,int)
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
21.10.2012, 22:41
Цитата Сообщение от Kosstudent Посмотреть сообщение
а почему в программе нет прототипа функции?
смотрите в чем дело, компилятор в визуал студио не видит весь проект полностью, он считывает по строково. Например если вы пишете сначала основную функцию и знаете что нужно передавать в доп функцию и что с неё будете получать, поперед мэйном пишите прототип доп фунции только с параметрами. Тогда компилятор не скажет что такая функция неопределена, но возможно вылезет варнинг что у функции есть только прототип. А уже ниже мэйн фунции или даже мб в другом .срр файле распишите что в теле функции делается.

Добавлено через 43 секунды
прототипа функции в мэйне не делается

Добавлено через 47 секунд
хотя мб и делается, я в этом если честно не сведущ, просто не знаю зачем это делать
1
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 21
21.10.2012, 22:44  [ТС]
аа,ну ясненько
спасибо огромное!!!!)
0
6 / 6 / 0
Регистрация: 14.10.2012
Сообщений: 36
21.10.2012, 22:45
//опоздал, но вроде бы чуть подробнее)
Прототип не обязателен. Обычно используется, когда функция объявлена ниже по коду, чем то место, где вызывается (дабы намекнуть компилятору, что если функция при проходе по тексту до точки вызова не найдена, то это еще не значит, что ее вовсе нет, и стоит поискать ее ниже). В примере же функция объявлена выше места вызова (в main'е) => все хорошо и прототип не нужен.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.10.2012, 22:45
Помогаю со студенческими работами здесь

Исправить код с рекурсивной функцией с указателями
по сути программа должна считывать массив, потом при вызове функции, проводя махинации, выводить себя, но выходят ошибки о необходимости...

Сделать функцией программу на языке С
Срочно, кто может сделать программу функцией? #include &lt;stdio.h&gt; #include &lt;locale.h&gt; int main() { float X, Y, X1, Y1; ...

Как сделать с функцией программу?
Нужно реализовать задачу с использованием функции. Я запутался с вложенными функциями. Помогите. #include &lt;conio.h&gt; #include...

Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++
Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++

Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++
Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru