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

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

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

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

03.06.2009, 03:35. Просмотров 2278. Ответов 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;
}
но все вроде нормально ввожу даные,но вывод какойто непонятный не то что ввел?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2009, 03:35     Структуры в функциях
Посмотрите здесь:

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

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

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++
В общем задание такое: Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю. Ввод, вывод...

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
inter
9701 / 2456 / 47
Регистрация: 06.03.2009
Сообщений: 8,503
14.06.2009, 04:19     Структуры в функциях #21
Мегатрон, где форматирование?
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
14.06.2009, 04:23  [ТС]     Структуры в функциях #22
дано такое задание
замените 3 функции версиями работающими с диапазонами значений
функция
C++
1
Fill_array ()
вместо возврата действительного числа прочитаных значений
должна возвращать указатель на место,следующие за последним введеным элементом
прочите функции должны использовать его в качестве второго аргумента для индефекации
конца диапазона даных

Добавлено через 1 минуту 22 секунды
Цитата Сообщение от inter Посмотреть сообщение
Мегатрон, где форматирование?
я сохранил сразу из копилятора
если ставлю теги то такую лабуду выдает шо страшно смотреть
inter
9701 / 2456 / 47
Регистрация: 06.03.2009
Сообщений: 8,503
14.06.2009, 04:27     Структуры в функциях #23
Мегатрон, http://www.cyberforum.ru/about-forum...tml#post191988 сюда напишите что происходит, может поправимо
Или через блокнот может попробовать сюда постить?
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
14.06.2009, 12:16  [ТС]     Структуры в функциях #24
Или через блокнот может попробовать сюда постить?
ок попробую через блокнотик

Добавлено через 25 минут 37 секунд
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
57
58
 
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)
{
 using namespace std;
 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;
 }
}
Добавлено через 5 часов 56 минут 14 секунд
дано такое задание
замените 3 функции версиями работающими с диапазонами значений
функция
Код C++1Fill_array ()
вместо возврата действительного числа прочитаных значений
должна возвращать указатель на место,следующие за последним введеным элементом
прочите функции должны использовать его в качестве второго аргумента для индефекации
конца диапазона даных

Добавлено через 7 минут 39 секунд
вот что я сделал согласно заданию

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
#include <iostream>
using namespace std;
const int N = 5;
int Fill_array (int *pa, int *pz);
void show_array (int *pa, int *pz);
void revalue (int *px, int *pa, int *pz);
int main()
{
 int ary[N];
 cout << " Fill_array = \n";
 int sum = Fill_array (ary, ary + N);
 cout << " show_array = \n";
 show_array (ary, ary + sum);
 cout << " cin >> gh = ";
 int gh;
 cin >> gh;
 int *ph = &gh;
 revalue (ph, ary,ary + sum);
 show_array (ary, ary + sum);
 return 0;
}
int Fill_array (int *pa, int *pz)
{
 int t, i;
 for(i = 0; pa < pz; pa++, i++)
 {
  cout<< i + 1 << " = ";
  cin >> t;
  if(!cin)
  {
   cin.clear();
   while(cin.get() != '\n')
    continue;
   cout << " exit \n";
   break;
  }
  else
   *pa = t;
 }
 return i;
}
void show_array (int *pa, int *pz)
{
 for(int i = 0; pa < pz; pa++, i++)
  cout << i + 1 << " = " << *pa << endl;
}
void revalue (int *px, int *pa, int *pz)
{
 for(int i = 0; pa < pz; pa++, i++)
  *pa *= *px;
}
Добавлено через 1 час 7 минут 8 секунд
у меня есть еще одно задание я его слелал ,но тока кое что неполучается
вот кусочек кода
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
 
const int N = 30;
struct student
{
            char name [N];
            char hobby [N];
             int opl;
};
int main ()
{
         int cls;
         cin >> cls;
         student  *pst = new student [cls];
         int ent = getinfo ( pst, cls);
}
int getinfo ( student pa[], int n)
{
             int i;
             for ( i = 0; i < n; i++)
        {
          cout << i + 1 << " = \n";
          cin >> pa [i].name;
          cin >> pa [i].hobby;
          cin >> pa [i].opl;
       }      
             return i;
}
нужно чтобы функция
C++
1
2
 
 getinfo ()
запрашивает и сохраняет даные о студентах
ввод прекращается либо после наполнениея массива
либо при вводе пустой строки вместо имени ( name ) студента ?
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
15.06.2009, 13:03  [ТС]     Структуры в функциях #25
так что некто нече не знает
antropokosmizm
18 / 18 / 1
Регистрация: 30.03.2009
Сообщений: 149
15.06.2009, 23:46     Структуры в функциях #26
А в чём проблема(-ы)?

Цитата Сообщение от Мегатрон Посмотреть сообщение
ввод прекращается либо после наполнениея массива
либо при вводе пустой строки вместо имени ( name ) студента ?
это у тебя уже реализовано в предыдущем задании - что тебе мешает взять оттуда?

Добавлено через 4 часа 13 минут 34 секунды
Кстати, Мегатрон, если хочешь научиться, привыкай к работе с отладчиками и хэлпами. К очень плотной работе с ними. Они будут твоими руками и глазами. На полном серьёзе. Только у оч. долго практикующего (один язык) программиста код слёту получается без ошибок, да и то, если он в хорошей форме, а у новичков и учащихся ошибок всегда много.
От этого (ошибок) не надо огорчаться, - просто каждую ошибку исправлять, пока код не станет чистый. Иногда работа над ошибками может потребовать (или "порекомендовать" ) переписать какие-то фрагменты кода или изменить их структуру, что-то обобщить может быть, вынести в отдельныю функцию и др... Таким требованиям ("рекомендациям" ) желательно следовать (особенно в процессе обучения) - они всё равно что ступеньки на довольно длинной лестнице развития умения кодить. На первых ступенях бывает даже всю прогу нужно переписать, от и до.
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
16.06.2009, 03:05  [ТС]     Структуры в функциях #27
это у тебя уже реализовано в предыдущем задании - что тебе мешает взять оттуда?
да не последний код

C++
1
2
3
4
5
6
7
8
9
10
11
12
int getinfo ( student pa[], int n)
{
             int i;
             for ( i = 0; i < n; i++)
        {
          cout << i + 1 << " = \n";
          cin >> pa [i].name;
          cin >> pa [i].hobby;
          cin >> pa [i].opl;
       }      
             return i;
}
ввод прекращается либо после наполнениея массива
либо при вводе пустой строки вместо имени ( name ) студента ?


при ввода пустой строки он не завершает цикл
вот и думаю что может быть

kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
16.06.2009, 13:23     Структуры в функциях #28
Цитата Сообщение от Мегатрон Посмотреть сообщение
при ввода пустой строки он не завершает цикл
вот и думаю что может быть
а почему доолжен завершаться цикл?, для досрочного выхода надо использовать
break;
antropokosmizm
18 / 18 / 1
Регистрация: 30.03.2009
Сообщений: 149
16.06.2009, 13:28     Структуры в функциях #29
Цитата Сообщение от kazak Посмотреть сообщение
а почему доолжен завершаться цикл?
потому что пустая строка - признак окончания заполнения списка студентов...
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
16.06.2009, 13:33     Структуры в функциях #30
Цитата Сообщение от antropokosmizm Посмотреть сообщение
потому что пустая строка - признак окончания заполнения списка студентов...
ну это по условию, а где это реализовано сдесь?
C++
1
2
3
4
5
6
7
8
9
10
11
int getinfo ( student pa[], int n)
{
             int i;
             for ( i = 0; i < n; i++)
        {
          cout << i + 1 << " = \n";
          cin >> pa [i].name;
          cin >> pa [i].hobby;
          cin >> pa [i].opl;
       }      
             return i;
antropokosmizm
18 / 18 / 1
Регистрация: 30.03.2009
Сообщений: 149
16.06.2009, 14:33     Структуры в функциях #31
Цитата Сообщение от kazak Посмотреть сообщение
ну это по условию, а где это реализовано сдесь?
C++
1
2
3
4
5
6
7
8
9
10
11
int getinfo ( student pa[], int n)
{
             int i;
             for ( i = 0; i < n; i++)
        {
          cout << i + 1 << " = \n";
          cin >> pa [i].name;
          cin >> pa [i].hobby;
          cin >> pa [i].opl;
       }      
             return i;
Насколько я понял, ученик это и спрашивает: как сделать?
На что я предположил: почему бы не воспользоваться похожим опытом фрагмента
Цитата Сообщение от Мегатрон Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int Fill_array (int *pa, int *pz)
{
 int t, i;
 for(i = 0; pa < pz; pa++, i++)
 {
  cout<< i + 1 << " = ";
  cin >> t;
  if(!cin)
  {
   cin.clear();
   while(cin.get() != '\n')
    continue;
   cout << " exit \n";
   break;
  }
  else
   *pa = t;
 }
 return i;
}
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
16.06.2009, 17:05  [ТС]     Структуры в функциях #32
На что я предположил: почему бы не воспользоваться похожим опытом фрагмента
как же, я так смагу
C++
1
2
3
 
cin >> t;
pa [i].name = t;
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
19.06.2009, 18:38  [ТС]     Структуры в функциях #33
шото мужики вкурить не магу
antropokosmizm
18 / 18 / 1
Регистрация: 30.03.2009
Сообщений: 149
19.06.2009, 21:43     Структуры в функциях #34
Мегатрон, давай подробно,
1. что конкретно (в деталях) непонятно
2. что пробовал, какие результаты
3. какие руководства (документацию, хэлпы) смотрел по обозначеным проблемам
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
20.06.2009, 04:04  [ТС]     Структуры в функциях #35
Цитата Сообщение от antropokosmizm Посмотреть сообщение
Мегатрон, давай подробно,
1. что конкретно (в деталях) непонятно
2. что пробовал, какие результаты
3. какие руководства (документацию, хэлпы) смотрел по обозначеным проблемам

у меня даже нет примерно таких примеров со структурами
ведь ввожу
C++
1
cin >> pa [i].name;
и он должен иметь логический оператор
C++
1
2
3
 
if ( cin >> pa [i].name == "  " )
            break;
если пустая строка то выйти,как сказано в задании
но я чето непойму как это со структурами записать
когда символы вводиш то понятно,а вот структуры такое первый раз и чето в голову нече не приходит даже зацепится незнаю за что
antropokosmizm
18 / 18 / 1
Регистрация: 30.03.2009
Сообщений: 149
20.06.2009, 15:45     Структуры в функциях #36
пробовал так?
C++
1
2
3
4
5
6
7
8
cin >> t;
  if(!cin || cin.get() == '\n' || t == '\n')
  {
   cout << " exit \n";
   break;
  }
  else
   pa [i].name = t;
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
20.06.2009, 18:01  [ТС]     Структуры в функциях #37
да тока несовсем так
проверю твой код

тока у меня сомнения на счет
C++
1
2
3
 
cin >> t;
pa [i].name = t;
antropokosmizm
18 / 18 / 1
Регистрация: 30.03.2009
Сообщений: 149
20.06.2009, 21:50     Структуры в функциях #38
Мегатрон, сомнения следует сразу проверять.
Вообще-то, учиться программить - это по-хорошему оч. плотная работа именно с компом: с компилятором, отладчиком и сопутствующей электронной документации по используемым библиотекам. А не с книгой и советчиками. Метод проб и ошибок. Метод научного тыка. На начальных ступенях программирования теоретические знания оч. быстро и легко теряются, если не подкреплены практикой.
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
21.06.2009, 03:40  [ТС]     Структуры в функциях #39
ну так для практики и существует задачник по программированию
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2009, 04:49     Структуры в функциях
Еще ссылки по теме:

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

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

Использование указателей в функциях - C++
Составить программу, в которой сформировать прямоугольную таблицу С с n × m целых чисел в динамической памяти, в отдельной функции...

о функциях (элементарно, но я же нуб) - C++
Пишу в компилятор следующее: #include &lt;cstdlib&gt; #include &lt;iostream&gt; int Sum (int a, int b) { std::cout &lt;&lt; &quot;Type a&quot;; ...

Строки и числа в функциях. - C++
Народ, вот упражняюсь в написании функций (самая больная тема). Не могли бы вы мне помочь в решении следующих задач на языке Си? Хочу...


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

Или воспользуйтесь поиском по форуму:
antropokosmizm
18 / 18 / 1
Регистрация: 30.03.2009
Сообщений: 149
21.06.2009, 04:49     Структуры в функциях #40
Мегатрон, оттуда ты берёшь задачи. Я имею в виду, что тебе необходимо как можно больше работать в среде программирования. Понимать сообщения об ошибках, которые тебе сообщает компилятор (интерпретатор), и, используя отладчик и хэлпы, уметь их исправлять.
Yandex
Объявления
21.06.2009, 04:49     Структуры в функциях
Ответ Создать тему
Опции темы

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