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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2010, 17:59   #1
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию Стуктура работает не правильно

Здравствуйте. Подскажите в чем ошибка, задача состоит в том, что бы заполнить структуру и найти человека по фамилии. Я написал программку, но она работает не корректно, хотя с логической точки зрения все хорошо В чем может быть проблема?

Код:
#include <conio.h>
#include <iostream.h>

struct RIO
{
	char Name[30];
	char SurName[30];
	char Sign[30];
};

void main()
{
	RIO *H;
	H = new RIO;
	int I, N = 2;
	for (I = 0; I < N; I++)
	{
		printf("Enter Data For Human %d\n", I + 1);
		printf("Enter Name : ");
		scanf("%s", &H[I].Name);
		printf("Enter SurName : ");
		scanf("%s", &H[I].SurName);
		printf("Enter Sign : ");
		scanf("%s", &H[I].Sign);
	}
	char S[30];
	bool B = false;
	printf("\nEnter SurName For Search : ");
	scanf("%s", &S);
	for (I = 0; I < N; I++)
		if (strcmp(S, H[I].SurName))
		{
			B = true;
			printf("Data For Found Human:\n");
			printf("His Name Is : %s\n", H[I].Name);
			printf("His SurName Is : %s\n", H[I].SurName);
			printf("His Sign Is : %s\n", H[I].Sign);
			break;
		}
	if (!B)
		printf("Human Not Found !\n");
	getch();
}
RIO вне форума Ответить с цитированием
Старый 20.12.2010, 18:15   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Поправил, что попалосб на глаза:
Код:
#include <conio.h>
#include <iostream.h>

struct RIO
{
	char Name[30];
	char SurName[30];
	char Sign[30];
};

void main()
{
	RIO *H;
	H = new RIO[2]; // Это вы типа на C пишите?
	int I, N = 2;
	for (I = 0; I < N; I++)
	{
		printf("Enter Data For Human %d\n", I + 1);
		printf("Enter Name : ");
		scanf("%s", H[I].Name); // H[I].Name - массив, т.е. H[I].Name - уже указатель на его начало
		printf("Enter SurName : ");
		scanf("%s", H[I].SurName);
		printf("Enter Sign : ");
		scanf("%s", H[I].Sign);
	}
	char S[30];
	bool B = false;
	printf("\nEnter SurName For Search : ");
	scanf("%s", S);
	for (I = 0; I < N; I++)
		if (strcmp(S, H[I].SurName))
		{
			B = true;
			printf("Data For Found Human:\n");
			printf("His Name Is : %s\n", H[I].Name);
			printf("His SurName Is : %s\n", H[I].SurName);
			printf("His Sign Is : %s\n", H[I].Sign);
			break;
		}
	if (!B)
		printf("Human Not Found !\n");

	delete [] H; // !!!
	getch();
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 20.12.2010, 18:56   #3
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Спасибо, да действительно, я допустил много грубейших ошибок. Но все же программа не стала работать как надо... Мне нужно что бы я заполнил структуру данными, ввел фамилию и программа мне выдала всю информацию про того человека который имеет такую фамилию
RIO вне форума Ответить с цитированием
Старый 20.12.2010, 19:05   #4
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

В таком случае это напоследок:
Код:
for (I = 0; I < N; I++)
		if (strcmp(S, H[I].SurName) == 0)
		{
			B = true;
			printf("Data For Found Human:\n");
			printf("His Name Is : %s\n", H[I].Name);
			printf("His SurName Is : %s\n", H[I].SurName);
			printf("His Sign Is : %s\n", H[I].Sign);
			break;
		}
Если возникли вопросы, посмотрите тут.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 20.12.2010, 19:18   #5
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Спасибо И за сайт огромное спасибо, очень хороший
RIO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не правильно (или правильно?) работает позиционирование в WebKit mutabor HTML и CSS 5 09.12.2010 09:54
не правильно работает функция mansp Общие вопросы C/C++ 15 07.11.2010 16:35
Не правильно работает запрос ww01031977 Microsoft Office Access 12 21.04.2010 10:52
программа работает. правильно ли? getUp Общие вопросы C/C++ 10 26.03.2010 07:07
Не правильно работает программа Virus_L Помощь студентам 0 28.12.2009 22:52