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

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

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

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

03.06.2009, 03:35. Просмотров 2270. Ответов 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;
}
но все вроде нормально ввожу даные,но вывод какойто непонятный не то что ввел?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.06.2009, 03:59     Структуры в функциях #2
Код
void cot (box ct)
заменить на
Код
void cot (box cn)
SONNY
8 / 8 / 0
Регистрация: 30.05.2009
Сообщений: 47
03.06.2009, 04:32     Структуры в функциях #3
sin (box cn) заменить на sin (box& cn)
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
03.06.2009, 05:02  [ТС]     Структуры в функциях #4
чето у меня выводит что опасность:(
ввод один
а вывод вабще левый какой-то=-O
mirso
524 / 342 / 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;
}
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
03.06.2009, 05:21  [ТС]     Структуры в функциях #6
C++
1
2
sin();
    cot();
не так я пробывал получается)
мне другим способом который я в начале написал чето не выходит?
а пачему непойму
antropokosmizm
18 / 18 / 1
Регистрация: 30.03.2009
Сообщений: 149
10.06.2009, 02:33     Структуры в функциях #7
Мегатрон, привет!
Ну, разобрался? Ато могу подключиться помочь...
Мегатрон
нубик программист)
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 или нужно создать новый массив чтобы туда записать значения в обратном порядке?
<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;
}
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 );
}
<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;
}
Мегатрон
нубик программист)
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;
}                                                               // тока тут он чето не все в обратном  порядке выдает
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*
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 {

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

}
<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;
}
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
11.06.2009, 18:06     Структуры в функциях #16
Цитата Сообщение от mirso Посмотреть сообщение
бред
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;
}
mirso Я конечно извиняюсь но что это за бред? вы хоть сами поняли что написали или это прикол такой?
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
11.06.2009, 18:15  [ТС]     Структуры в функциях #17
лана шас я спать иду завтра проверю
у меня там задача ,код там большой сильно не стал весь писать вылаживаю по кусочкам

считать_массив
преобразовать_массив
вывести_на_экран_результат
это как раз там и требуют тока использовать диапазоные значения
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
14.06.2009, 02:24  [ТС]     Структуры в функциях #18
вот у меня такой код

Добавлено через 35 минут 45 секунд
модератор хелп удали мой код
у меня чето лагануло такую фигню выдал
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.06.2009, 02:44     Структуры в функциях #19
Цитата Сообщение от SONNY Посмотреть сообщение
ну например так
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 );
}
Вы сами-то этот код понимаете?
Судя, по тому, какую программу пытается написать автор, то он явно НИЧЕГО из Вашего кода не поймет. До STL ему явно еще далеко.
Мегатрон, если Вам нужна функция разворота целочисленного массива то вот:
C++
1
2
3
4
5
6
7
8
void Reverse(int* arr, int size)
{
  for(int i = 0; i < size / 2; ++i){
    int tmp = arr[i];
    arr[i] = arr[size - i - 1];
    arr[size - i - 1] = tmp;
  }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2009, 04:17     Структуры в функциях
Еще ссылки по теме:

Переменные в функциях C++
C++ о функциях (элементарно, но я же нуб)
Ошибка в функциях с++ C++
C++ Ошибки в функциях
Окончание W и A в функциях C++

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

Или воспользуйтесь поиском по форуму:
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
14.06.2009, 04:17  [ТС]     Структуры в функциях #20
я ее уже написал функции
у меня тут еще кое что другое
шас код откоректирую а то он у меня такую лабуду выдает

Добавлено через 12 минут 20 секунд
такой код
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
using namespace std;
const int Max = 5;
int Fill_array (double ar[], int lem);
void show_array (const double ar[], int n);
void rev_array (double w, double ar[] ,int n);
int main ( )
{
      setlocale (LC_ALL,".1251");
      double perr[Max];
      int size= Fill_array (perr,Max);
      show_array (perr,size);
      cout<<"Ввести число:\n";
      double fak;
      cin>>fak;
      rev_array (fak,perr,size);
      show_array (perr,size);
      return 0;
}
int Fill_array (double ar[] , int lem)
{
      double temp;
      int i;
      for(i=0;i<lem;i++)
      {
            cout<<"Ввести число #"<<(i+1)<<":";
            cin>>temp;
            if(!cin)
            {
                  cin.clear();
                  while(cin.get()!='\n')
                        continue;
                  cout<<"Нет ввода:\n";
                  break;
            }
            else if(temp<0)
                  break;
            ar[i]=temp;
      }
      return i;
}
void show_array (const double ar[],int n)
{
      using namespace std;
      for(int i=0;i<n;i++)
      {
            cout<<"Элемент #"<<(i+1)<<":";
          cout<<ar[i]<<endl;
      }
}
void rev_array (double w,double ar[],int n)
{
      for(int i=0;i<n;i++)
      {
            ar[i]*=w;
      }
}
Yandex
Объявления
14.06.2009, 04:17     Структуры в функциях
Ответ Создать тему
Опции темы

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