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

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

21.10.2012, 21:13. Показов 1094. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru