|
|
|
Проблема
|
|||
|---|---|---|---|
|
#18+
есть программа: #include <iostream> using namespace std; #include <stdio.h> struct students { char name[25]; int age; float average; float schs; char add[200]; }; students fill_structs (students stu_data) { cout << " Введите имя студента: "; gets (stu_data.name); cout<<"Введите возраст студента: "; cin>>stu_data.age; cout<<"Введите средний балл студента: "; cin>>stu_data.average; cout<<"Введите размер получаемой стипендии студентом: "; cin>>stu_data.schs; cout<<"Введите домашний адрес студента: "; gets(stu_data.add); return stu_data; } print_data (students stu_data) { cout<<"Имя: "<<stu_data.name<<endl<<"Возраст: "<<stu_data.age<<endl<<"Средний балл: "<<stu_data.average<<endl<< "Размер стипендии: "<<stu_data.schs<<endl<<"Домашний адрес: "<<stu_data.add<<endl; return 0; } main() { students student1, student2; student1 = fill_structs (student1); student2 = fill_structs (student2); cout << " \n\nИнформациЯ о студентах:\n\n"; print_data (student1); print_data (student2); return 0; } при запуске выдается ошибка. Если studen1, student2 инициализировать в главной функции перед вызовом функций, то все работает. Т.к. структура students глобальная, то убирая из формальных параметров функции структуру и не передавая ее в функцию тоже все будет работать. Но нужно чтобы работало все именно так как в тексте. Как избавиться от ошибки, не инициализируя students и не убирая stu_data? Прошу помощи. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 12:44 |
|
||
|
Проблема
|
|||
|---|---|---|---|
|
#18+
cadgeесть программа.... я бы сделал вот тут референс (ну енто так к слову)... Код: plaintext 1. а компилятор заткнёться, если вы реализуете в структуре следующую батву... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. то бишь конструктор по умолчанию... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 13:21 |
|
||
|
Проблема
|
|||
|---|---|---|---|
|
#18+
kolobok0я бы сделал вот тут референс (ну енто так к слову)... опс...поспешил, сорьки...дико извиняюсь.. (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 13:22 |
|
||
|
Проблема
|
|||
|---|---|---|---|
|
#18+
cadgeесть программа: #include <iostream> using namespace std; #include <stdio.h> struct students { char name[25]; int age; float average; float schs; char add[200]; }; students fill_structs (students stu_data) { cout << " Введите имя студента: "; gets (stu_data.name); cout<<"Введите возраст студента: "; cin>>stu_data.age; cout<<"Введите средний балл студента: "; cin>>stu_data.average; cout<<"Введите размер получаемой стипендии студентом: "; cin>>stu_data.schs; cout<<"Введите домашний адрес студента: "; gets(stu_data.add); return stu_data; } print_data (students stu_data) { cout<<"Имя: "<<stu_data.name<<endl<<"Возраст: "<<stu_data.age<<endl<<"Средний балл: "<<stu_data.average<<endl<< "Размер стипендии: "<<stu_data.schs<<endl<<"Домашний адрес: "<<stu_data.add<<endl; return 0; } main() { students student1, student2; student1 = fill_structs (student1); student2 = fill_structs (student2); cout << " \n\nИнформациЯ о студентах:\n\n"; print_data (student1); print_data (student2); return 0; } при запуске выдается ошибка. Если studen1, student2 инициализировать в главной функции перед вызовом функций, то все работает. Т.к. структура students глобальная, то убирая из формальных параметров функции структуру и не передавая ее в функцию тоже все будет работать. Но нужно чтобы работало все именно так как в тексте. Как избавиться от ошибки, не инициализируя students и не убирая stu_data? Прошу помощи. Заранее благодарен. Что-то мне подсказывает, что здесь надо использовать указатели Например, так: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 13:32 |
|
||
|
Проблема
|
|||
|---|---|---|---|
|
#18+
Надо стркуктуру передавать по ссылке, то есть, чтобы фукнция могла изменять её значение, поэтому надо через указатели работать, то есть вызывать функцию с & перед students ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 14:20 |
|
||
|
Проблема
|
|||
|---|---|---|---|
|
#18+
Очень благодарен за оперативные ответы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 09:29 |
|
||
|
Проблема
|
|||
|---|---|---|---|
|
#18+
Должно быть students fill_structs (students &stu_data) или students fill_structs (students *stu_data) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 09:42 |
|
||
|
Проблема
|
|||
|---|---|---|---|
|
#18+
students fill_structs (students &stu_data) - return не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 09:43 |
|
||
|
Проблема
|
|||
|---|---|---|---|
|
#18+
MasterZivstudents fill_structs (students &stu_data) - return не нужен. человек задавал вопрос про РУГАНЬ КОМПИЛЯТОРА... правильный ответ...приведён мною выше...привожу весь рабочий код... Код: plaintext 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. (круглый) ЗЫ Ссылки, указатели и прочая лабуда тут не причём (мона отнести к оптимизации). Всё и так дышит.по крайней мере компилиться, запускаеться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 13:59 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33545316&tid=2031935]: |
0ms |
get settings: |
7ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 326ms |

| 0 / 0 |
