Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2017, 22:07   #1
Андрій00,2
Пользователь
 
Регистрация: 24.10.2017
Сообщений: 34
По умолчанию [C++] Динамические структуры. Не выводит результат. Есть код.

РЕБЯТ,ПРИВЕТ.ПОЧЕМУ У МЕНЯ НЕ ВИВОДИТ РЕЗУЛЬТАТ
Цитата:
for(int i=0;i<1;i++)
{
if(s1.uspix[0]=='5')
{
printf("iмя студента:[%с]\nгрупа студента:[%с]",s1.name,s1.nomer);
}
ВОТ КОД:
Код:
#include <iostream>
#include<string.h>
#include<windows.h>
using namespace std;
	struct STUDENT
	{
		char *name;
		char *nomer;
		int uspix[5];	
	};

int main()
{
system("cls");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
STUDENT s1;
STUDENT K[10];
  int i=0;
  while(i<1)
{
  	i++;
cout<<"Прізвище й ініціали:\n";
cin>>s1.name;
cout<<"номер групи:\n";
cin>>s1.nomer;
cout<<"успішність:\n";
cin>>s1.uspix[0];
cin>>s1.uspix[1];
cin>>s1.uspix[2];
cin>>s1.uspix[3];
cin>>s1.uspix[4];
cout<<endl;
}

for(int i=0;i<1;i++)
{
	if(s1.uspix[0]=='5')
	{
		printf("iмя студента:[%с]\nгрупа студента:[%с]",s1.name,s1.nomer);
	}
	
}
	return 0;
}
ПОМОГИТЕ ПЖ
Андрій00,2 вне форума Ответить с цитированием
Старый 07.12.2017, 06:54   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Сопоставь со своим (я правил не только там, где ты указал):
Код:
#include <iostream>
#include <windows.h>
using namespace std;

struct STUDENT
{
	char name[10];
	char nomer[10];
	int uspix[5];
};

int main()
{
	system("cls");
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);

	STUDENT s1;

	int i = 0;
	while (i<1)
	{
		i++;
		cout << "Прізвище й ініціали:\n";
		cin >> s1.name;
		cout << "номер групи:\n";
		cin >> s1.nomer;
		cout << "успішність:\n";
		cin >> s1.uspix[0];
		cin >> s1.uspix[1];
		cin >> s1.uspix[2];
		cin >> s1.uspix[3];
		cin >> s1.uspix[4];
		cout << endl;
	}
	for (int i = 0; i<1; i++)
	{
		if (s1.uspix[0] == 5)
		{
			cout << "iмя студента: " << s1.name << "\nгрупа студента: " << s1.nomer;
		}
	}
	cin >> s1.name; //чтобы консоль не закрывалась
	return 0;
}
___________________________________ ________________

У тебя было
Код:
#include<string.h>
а зачем оно было предусмотрено?

Для "string", но ты в программе не используешь переменные с таким типом...
Или ты хотел группу и имя именно в переменной такого типа хранить?
Тогда зачем оставил указатели на массив "char" (например "char *name")?

(дело в том, что указатели - это отдельная большая тема, и зачем ты туда полез не понятно.
Ты же совершенно не понимаешь, что значит конструкция типа "char *"?...
Я заменил на просто массивы "char")

Последний раз редактировалось ura_111; 07.12.2017 в 07:10.
ura_111 вне форума Ответить с цитированием
Старый 07.12.2017, 13:13   #3
Андрій00,2
Пользователь
 
Регистрация: 24.10.2017
Сообщений: 34
По умолчанию

благадарю
Андрій00,2 вне форума Ответить с цитированием
Старый 07.12.2017, 13:39   #4
Андрій00,2
Пользователь
 
Регистрация: 24.10.2017
Сообщений: 34
По умолчанию

подскажите пж,как сделать,щоб виводило все имена з 5,если і<5;
Цитата:
for (int i = 0; i<5; i++)
{
if (s1.uspix[0] == 5||4||s1.uspix[1] == 5||4||s1.uspix[2] == 5||4||s1.uspix[3] == 5||4||s1.uspix[4] == 5||4)
{

cout << "iìÿ ñòóäåíòà: " << s1.name << "\nãðóïà: " << s1.nomer;break;
}
оно мне виводит только последное имя,если есть 5,а нужно щоб все у кого есть 5
Андрій00,2 вне форума Ответить с цитированием
Старый 07.12.2017, 14:09   #5
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

"последнее имя" не может быть у тебя, потому что у тебя только один студент.

Ну попробуй так c "i<1":
Код:
	for (int i = 0; i<1; i++)
	{
		if (s1.uspix[0] == 5 || s1.uspix[1] == 5 || s1.uspix[2] == 5 || s1.uspix[3] == 5 || s1.uspix[4] == 5)
		{
			cout << "iмя студента: " << s1.name << "\nгрупа студента: " << s1.nomer;
		}
	}
ura_111 вне форума Ответить с цитированием
Старый 07.12.2017, 14:26   #6
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Ты не заполняешь новых студента, а просто перезаписываешь информацию по одному студенту, который описан в "s1":


1.jpg


Если у тебя несколько студентов, тогда надо переходить к массиву студентов "s1[5]" (или можно просто название сделать "s[5]",
ведь "s1" означала 1-й студент???) и дальше плясать от этого...
Но, я знаю, что ты плохо знаешь теорию массивов, поэтому с ходу тебе не решить, - порешай сначала задачки из какого-нибудь учебника на массивы, а потом приступай к своей задачи. А если ты не хочешь работать, тогда можешь сделать так:
Код:
STUDENT s1,s2,s3,s4,s5;
для каждого студента своя переменная. И соответственно будешь работать без циклов, а просто:
Код:
cin >> s1.name;
cin >> s1.uspix[0];
........
........
cin >> s2.name;
cin >> s2.uspix[0];
........
........
cin >> s3.name;
cin >> s3.uspix[0];
........
........
Заполнение "s1" у тебя уже есть, а остальные - аналогично.
Ну и проверки соответственно s1,s2,s3,s4,s5 отдельно (без циклов) производится.

Не бойся экспериментировать с кодом.

Последний раз редактировалось ura_111; 07.12.2017 в 14:40.
ura_111 вне форума Ответить с цитированием
Старый 07.12.2017, 15:45   #7
Андрій00,2
Пользователь
 
Регистрация: 24.10.2017
Сообщений: 34
По умолчанию

спасибо
Андрій00,2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выводит адекватный результат laketych Общие вопросы C/C++ 2 29.09.2017 04:42
Не выводит результат Otar4ik Помощь студентам 4 06.09.2015 09:44
Помогите написать код на Delphi на тему динамические структуры данных Yustinka Помощь студентам 0 07.06.2015 23:25
Динамические структуры данных, списковые структуры (надо разобраться что делает программа) _4Alex4_ Помощь студентам 1 14.11.2012 07:39
Есть ли смысл создавать динамические данные внутри динамической структуры? Theseus Общие вопросы C/C++ 2 23.07.2012 12:37