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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.79
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
#1

Структуры в функциях - C++

03.06.2009, 03:35. Просмотров 2310. Ответов 41
Метки нет (Все метки)

привет вот у меня есть такой код

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
 
struct box
{    
                  char nme[20];
                   int vol;
 };
void sin ( box cn);
void cot (box ct);
int main ()
{
                       box snw;
                       sin (snw);
                       cot (snw);
             return 0 ;
}
void sin (box cn)
{
             cin >> cn.nme ;
             cin >> cn.vol ;
}
void cot (box ct)
{
                 cout << " nme = " << cn.nme << endl;
                 cout << "  vol = " << cn.vol << endl;
}
но все вроде нормально ввожу даные,но вывод какойто непонятный не то что ввел?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2009, 03:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Структуры в функциях (C++):

Помещение структуры в вектор, удаление структуры, изменение элементов структуры - C++
Здравствуйте. Помогите разобраться с тем, как: 1 - находить элементы в векторе зная уникальный элемент структуры. 2 - удалять...

This в функциях - C++
У меня простой вопрос, почему некоторые люди постоянно в функциях-членах чуть ли не везде приписывают this даже когда нету никаких коллизий...

Переменные в функциях - C++
Разбираясь с передачей и приемом функциями различных типов данных, столкнулся с такой проблемой.Написал 2 похожие функции и стал объявлять...

vector в функциях - C++
нужна помощь #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; void func(vector &lt;int&gt; ob) { ob=111; ...

Окончание W и A в функциях - C++
Привет. Объясните пожалуйста допустим: GetCurrentDirectoryW (Unicode) and GetCurrentDirectoryA (ANSI) - это понятно. А обычная...

Указатели в функциях - C++
Проблема с указателями в классе дерево. Есть такой вот класс: template &lt;class T&gt; class tree_elem { public: T value; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.06.2009, 03:59 #2
Код
void cot (box ct)
заменить на
Код
void cot (box cn)
0
SONNY
8 / 8 / 0
Регистрация: 30.05.2009
Сообщений: 47
03.06.2009, 04:32 #3
sin (box cn) заменить на sin (box& cn)
0
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
03.06.2009, 05:02  [ТС] #4
чето у меня выводит что опасность:(
ввод один
а вывод вабще левый какой-то=-O
0
mirso
525 / 343 / 17
Регистрация: 05.04.2009
Сообщений: 709
03.06.2009, 05:13 #5
Мегатрон,
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.h>
#include <conio>
 
//-----------------
struct box
{
    char nme[20];
    int  vol;
};
//-----------------
void sin(void);
void cot(void);
 
//=======================================
 
void main (void)
{
    box snw;
    sin();
    cot();
 
getch();
}
//=======================================
 
void sin()
{   box cn;
    cin >> cn.nme;
    cin >> cn.vol;
}
//--------------------------------------
 
void cot()
{   box ct;
    cout << " nme = " << ct.nme << endl;
    cout << " vol = " << ct.vol << endl;
}
0
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
03.06.2009, 05:21  [ТС] #6
C++
1
2
sin();
    cot();
не так я пробывал получается)
мне другим способом который я в начале написал чето не выходит?
а пачему непойму
0
antropokosmizm
18 / 18 / 1
Регистрация: 30.03.2009
Сообщений: 149
10.06.2009, 02:33 #7
Мегатрон, привет!
Ну, разобрался? Ато могу подключиться помочь...
0
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
11.06.2009, 16:32  [ТС] #8
Цитата Сообщение от antropokosmizm Посмотреть сообщение
Мегатрон, привет!
Ну, разобрался? Ато могу подключиться помочь...
да разобрался=)
тока у меня там кое что еще
буду тут в этой теме писать

вот пример есть у меня массив
C++
1
int mas[5] = { 1, 2, 3, 4, 5};
можно ли его поменять местами в этом массиве 5,4,3,2,1 или нужно создать новый массив чтобы туда записать значения в обратном порядке?
0
<Norton>
Отдыхающий:)
94 / 91 / 10
Регистрация: 05.04.2009
Сообщений: 188
11.06.2009, 17:07 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main()
{
    const int max=5;
    int array[max]={1,2,3,4,5};
    int buf;
    for(int i=0;i<max/2;i++)
    {
        buf=a[i];a[i]=a[max-i-1];a[max-i-1]=buf;
    }
    return 0;
}
0
SONNY
8 / 8 / 0
Регистрация: 30.05.2009
Сообщений: 47
11.06.2009, 17:09 #10
ну например так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template<typename _RnIt>
void swap_array( _RnIt _First, _RnIt _Second )
{
    std::iterator_traits<_RnIt>::value_type _Temp = *_First;
    *_First = *_Second;
    *_Second = _Temp;
}
 
int main()
{
    int a[] = { 1, 2, 3, 4, 5 };
    swap_array( a, a + 3 );
}
0
<Norton>
Отдыхающий:)
94 / 91 / 10
Регистрация: 05.04.2009
Сообщений: 188
11.06.2009, 17:10 #11
Извини, масив под другим именем написал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main()
{
    const int max=5;
    int array[max]={1,2,3,4,5};
    int buf;
    for(int i=0;i<max/2;i++)
    {
        buf=array[i];array[i]=array[max-i-1];array[max-i-1]=buf;
    }
    return 0;
}
0
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
11.06.2009, 17:41  [ТС] #12
так а вот у меня есть такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
int main() 
{
const int N = 5;
int mas[N];
for(int i = 0;i < N; i++)
          cin >> mas[i];
snow (mas, mas + N);
retutn 0;
}
void snow (int *nh, int *kh)
{
         for ( int i = 0; kh != nh; kh--)
                       cout << i + 1 << " = " << *kh << endl;
}                                                               // тока тут он чето не все в обратном  порядке выдает
0
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
11.06.2009, 17:46 #13
Цитата Сообщение от Мегатрон Посмотреть сообщение
snow (mas, mas + N);
Цитата Сообщение от Мегатрон Посмотреть сообщение
void snow (int *nh, int *kh)
сравни вызов функции и ее описание
вызываешь вторым параметром int* + const int
а в описании int*
0
antropokosmizm
18 / 18 / 1
Регистрация: 30.03.2009
Сообщений: 149
11.06.2009, 17:48 #14
Мегатрон, попробуй сделать так, чтобы вместо параметра "int *nh" использовать параметр N.
Чтобы вызывалась функция не "snow (mas, mas + N);", а "snow (N, mas);"
Это первое.
И второе: попробуй сначала перевернуть массив, а только потом выводить. Чтобы это делели 2 разные функции.
------
Ну и я бы на твоём месте ещё выделил отдельно функцию swap, которая бы меняла местами значения 2-ух ячеек памяти типа int.
Вообще приучайся разделять прогу на функции. Разделяй и властвуй. Чтобы main был лаконичным.

main {

считать_массив
преобразовать_массив
вывести_на_экран_результат

}
0
<Norton>
Отдыхающий:)
94 / 91 / 10
Регистрация: 05.04.2009
Сообщений: 188
11.06.2009, 17:58 #15
Если тебе нужно с указателями, то вот она:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
int main()
{
    int s[5]={1,2,3,4,5};
    int *st,*e,t;
    st=s;
    e=&s[4];
    while (st<e)
    {
        t=*st;
        *st=*e;
        *e=t;
        st++;
        e--;
    }
           for(int i=0;i<5;i++)
                    cout<<"a["<<i<<"]="<<s[i]<<endl;
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2009, 17:58
Привет! Вот еще темы с ответами:

Ошибки в функциях - C++
В общем задание такое: Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю. Ввод, вывод...

Массивы в функциях - C++
напишите пожалуйста 2 программы для с++ 1) составить программу, которая все элементы массивов Х(1..10) и Y(1..13), расположенные на...

Ошибка в функциях с++ - C++
функция f выполняет запрос к пользователю и возвращает значение ex либо x2; • функция one выполняет вычисление по первой...

О виртуальных функциях - C++
Читаю у Страуструпа 3 издание по с++ 12.2.6. Виртуальные функции и не много не догоняю что он имеет ввиду процитирую: &quot;Для того чтобы...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.06.2009, 17:58
Ответ Создать тему
Опции темы

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