powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема
9 сообщений из 9, страница 1 из 1
Проблема
    #33543215
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?
Прошу помощи.
Заранее благодарен.
...
Рейтинг: 0 / 0
Проблема
    #33543372
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cadgeесть программа....

я бы сделал вот тут референс (ну енто так к слову)...

Код: plaintext
1.
students fill_structs (students& stu_data)

а компилятор заткнёться, если вы реализуете в структуре следующую батву...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
struct students			
{
    students(void) {};

    char	name[ 25 ];
    int   	age;
    float	average;
    float   schs;
    char    add[ 200 ];
};

то бишь конструктор по умолчанию...

с уважением
(круглый)
...
Рейтинг: 0 / 0
Проблема
    #33543380
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0я бы сделал вот тут референс (ну енто так к слову)...

опс...поспешил, сорьки...дико извиняюсь..

(круглый)
...
Рейтинг: 0 / 0
Проблема
    #33543429
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
#include <iostream>
#include <stdio.h>
#include <conio.h>

using namespace std;

struct students			
{  
    char	name[ 25 ];
    int   	age;
    float	average;
    float   schs;
    char    add[ 200 ];
};				

students *fill_structs (students *stu_data)
{  
	cout << " Введите имя студента: ";
        cin>>stu_data->name;	
	cout<<"Введите возраст студента: ";
	cin>>stu_data->age;
	cout<<"Введите средний балл студента: ";
	cin>>stu_data->average;
	cout<<"Введите размер получаемой стипендии студентом: ";
	cin>>stu_data->schs;
	cout<<"Введите домашний адрес студента: ";
	cin>>stu_data->add;    
	return stu_data;
}

int 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<<endl<<endl;	
   return  0 ;
}

int main()
{  students student1, student2;
   fill_structs (&student1);
   fill_structs (&student2);
   cout << " \n\nИнформациЯ о студентах:\n\n";
   print_data (&student1);
   print_data (&student2);
   getch();
   return  0 ;
}
...
Рейтинг: 0 / 0
Проблема
    #33543613
bender2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо стркуктуру передавать по ссылке, то есть, чтобы фукнция могла изменять её значение, поэтому надо через указатели работать, то есть вызывать функцию с & перед students
...
Рейтинг: 0 / 0
Проблема
    #33545316
cadge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень благодарен за оперативные ответы
...
Рейтинг: 0 / 0
Проблема
    #33545350
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Должно быть

students fill_structs (students &stu_data)
или
students fill_structs (students *stu_data)
...
Рейтинг: 0 / 0
Проблема
    #33545354
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
students fill_structs (students &stu_data) - return не нужен.
...
Рейтинг: 0 / 0
Проблема
    #33546354
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
#include <iostream>
using namespace std;
#include <stdio.h>
struct students 
{
	students(void) {};
	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;
}
int 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 ;
}

int _tmain(int argc, _TCHAR* argv[])
{


	students student1, student2;
	student1 = fill_structs (student1);
	student2 = fill_structs (student2);
	cout << " \n\nИнформациЯ о студентах:\n\n";
	print_data (student1);
	print_data (student2);
}

(круглый)
ЗЫ
Ссылки, указатели и прочая лабуда тут не причём (мона отнести к оптимизации). Всё и так дышит.по крайней мере компилиться, запускаеться.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]