Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
нубик программист)
 Аватар для Мегатрон
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348
1

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

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

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

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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.06.2009, 03:35
Ответы с готовыми решениями:

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

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

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

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

41
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
03.06.2009, 03:59 2
Код
void cot (box ct)
заменить на
Код
void cot (box cn)
0
8 / 8 / 5
Регистрация: 30.05.2009
Сообщений: 47
03.06.2009, 04:32 3
sin (box cn) заменить на sin (box& cn)
0
нубик программист)
 Аватар для Мегатрон
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348
03.06.2009, 05:02  [ТС] 4
чето у меня выводит что опасность:(
ввод один
а вывод вабще левый какой-то=-O
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
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
Сообщений: 348
03.06.2009, 05:21  [ТС] 6
C++
1
2
sin();
    cot();
не так я пробывал получается)
мне другим способом который я в начале написал чето не выходит?
а пачему непойму
0
18 / 18 / 1
Регистрация: 30.03.2009
Сообщений: 149
10.06.2009, 02:33 7
Мегатрон, привет!
Ну, разобрался? Ато могу подключиться помочь...
0
нубик программист)
 Аватар для Мегатрон
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348
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 / 22
Регистрация: 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
8 / 8 / 5
Регистрация: 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 / 22
Регистрация: 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
Сообщений: 348
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
121 / 121 / 14
Регистрация: 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
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 / 22
Регистрация: 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
Maniac
Эксперт С++
 Аватар для ISergey
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 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 Я конечно извиняюсь но что это за бред? вы хоть сами поняли что написали или это прикол такой?
0
нубик программист)
 Аватар для Мегатрон
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348
11.06.2009, 18:15  [ТС] 17
лана шас я спать иду завтра проверю
у меня там задача ,код там большой сильно не стал весь писать вылаживаю по кусочкам

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

Добавлено через 35 минут 45 секунд
модератор хелп удали мой код
у меня чето лагануло такую фигню выдал
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 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;
  }
}
0
нубик программист)
 Аватар для Мегатрон
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348
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;
      }
}
0
14.06.2009, 04:17
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.06.2009, 04:17
Помогаю со студенческими работами здесь

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

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

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

vector в функциях
нужна помощь #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; void func(vector...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru