Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обработка записей, обработка записей 
:(
    Опции темы
555shiro
Дата 17.2.2010, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 3.1.2010

Репутация: нет
Всего: нет



Здраствуйте!
возникли небольшие сложности с решением данной задачи,
помогите пожалуйста разобраться,в чем моя ошибка? а задание было такое-"имеются сведения о посещении пациентами больницы,
фамилия пациента,дата рождения,дата посещения,участок,фамилия врача,диагноз.Выяснить фамилию пациента,которые обращались в больницу осенью и которым поставлен диагноз - грипп".

Код
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
const n=4; //количество пациентов произвольное
const k=3; // количество врачей
struct pacient  //структурный тип с именем пациент
{char fio1[10];
 int data1;  //   дата рождения
 int data2;  // дата посещения
  int ychastok;
  int mouth;   //месяц
};
struct vrach   // структурный тип с именем врач
  { char fio2[10];
  char diagnoz[10];}; //диагноз
int main()
{{int vrema_goda; //времена года
  pacient ps[n];
  for(int i=0;i<n;i++) {
  printf("familia1: ");scanf("%s",&ps[i].fio1);
 printf(" data1: ");scanf("%d",&ps[i].data1);
  printf("data2:");scanf("%d",&ps[i].data2);
    printf("mouth:");scanf("%d",&ps[i].mouth);
  } }
  vrach bl[k];
 { for(int j=0;j<k;j++)
  { printf("familia2: ");scanf("%s",&bl[j].fio2);
 printf(" diagnoz: ");scanf("%d",&bl[j].diagnoz);
} }};
printf("vvedite vremya goda:(1==zima,2==vesna,3==leto,4==osen)\n");
 scanf("%d",&vrema_goda);
 printf("v eto vrema rodilis:\n");

 for(i=0;i<n;i++) {
  if (vrema_goda== 1) {
   if (ps[i].mouth==9 ||ps[i].mouth==10 ||ps[i].mouth==11)
    printf("%s\n",ps[i].fio);


 }; getch(); }



Модератор: не забываем пользоваться кнопочкой "Код"

Это сообщение отредактировал(а) bsa - 17.2.2010, 22:12
PM MAIL   Вверх
bsa
Дата 17.2.2010, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



а какие трудности? Почему код не корректно отформатирован?
PM   Вверх
Christoph
Дата 17.2.2010, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: нет
Всего: 11



Код читать тяжело :(
В одной структуре "пациент" можно было бы все поля задать! Затем создаешь массив из структур и заполняешь значениями, потом в цикле смотришь каждую структуру и проверяешь поля - месяц и диагноз, если совпало, то с этой записи извлекаешь ФИО пациента


--------------------
user posted image
PM MAIL ICQ   Вверх
Ozerich
Дата 17.2.2010, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 2.8.2009
Где: Минск, Беларусь

Репутация: 4
Всего: 5



Диагноза в структуре нету. Идёшь по массиву пациентов и для дату каждого элемента сверяешь с осенью. С диагнозом тоже самое. Если оба совпали, то выводи фамилию. smile 
Структура:
Код

struct pacient  //структурный тип с именем пациент
{char fio1[10];
 int data1;  //   дата рождения
 int data2;  // дата посещения
  int ychastok;
  int month;
  char fiodoktor[10]
  char diagnoz[10];
};

pacient ps[n];



Проход по массиву структур
Код

for(int i = 0; i<n;i++)
if(ps[i].month>=9 && ps[i].month<=11 && ps[i].diagnoz=="Grip")
printf("%s",ps[i].fio);


Это сообщение отредактировал(а) Ozerich - 17.2.2010, 22:38
--------------------
C++(STL) / DHTML(CSS) / Javascript / PHP  Developer
PM MAIL ICQ Skype   Вверх
ns4107
Дата 18.2.2010, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 17.6.2009

Репутация: нет
Всего: нет



И диагноз типа char[10] через %d зачем-то вводишь. 
PM MAIL   Вверх
Ozerich
Дата 18.2.2010, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 2.8.2009
Где: Минск, Беларусь

Репутация: 4
Всего: 5



Строку считывать надо с %s
--------------------
C++(STL) / DHTML(CSS) / Javascript / PHP  Developer
PM MAIL ICQ Skype   Вверх
bsa
Дата 18.2.2010, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(Ozerich @  18.2.2010,  00:29 Найти цитируемый пост)
Строку считывать надо с %s
можно и %c

PM   Вверх
555shiro
Дата 18.2.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 3.1.2010

Репутация: нет
Всего: нет



теперь сделал вот так,но всё равно ошибок много(
Код

#include <string.h>
#include <conio.h>
#include <stdio.h>
const n=4; // количество пациентов
struct pacient  // структурированный тип
{char fio1[10];
 int data1;  //   дата рождения
 int data2;  // дата посещения
  int ychastok; // участок
  int month;  // месяц
  char fiodoktor[10]; // фамилия врача
  char diagnoz[10];  // диагноз
};
pacient ps[n];
      int main()
            {  int i;
int vrema_goda; //  время года
  pacient ps[n];
for(int i=0;i<n;i++)
  {
 printf("familia1: ");
  scanf("%s",&ps[i].fio1);
 printf(" data1: ");
 scanf("%d",&ps[i].data1);
  printf("data2:");
  scanf("%d",&ps[i].data2);
    printf("month:");
    scanf("%d",&ps[i].month);
    printf("diagnoz: ");
    scanf("%s",&ps[i].diagnoz);
   }}; 
 printf(" fio doctor :"); // выходит ошибка
scanf("%s",&ps[i].fiodoctor);// выходит ошибка
printf("vvedite vremya goda:(1==zima,2==vesna,3==leto,4==osen)\n");
 scanf("%d",&vrema_goda);
 printf("v eto vrema posetili:\n");
 for(int i=0;i<n;i++)
{
if(ps[i].month>=9 && ps[i].month<=11 && ps[i].diagnoz=="Grip")
printf("%s",ps[i].fio);
 }

 getch ();
 }


Это сообщение отредактировал(а) 555shiro - 18.2.2010, 16:04
PM MAIL   Вверх
bsa
Дата 18.2.2010, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



555shiro, ты найдешь ошибку, когда сделаешь то, что указано тут: Оформление кода

Формучане, не подсказывайте!

Добавлено через 1 минуту и 10 секунд
Кстати, компилятор текстом ошибок, обычно, подсказывает в чем именно ошибка заключается.

Это сообщение отредактировал(а) bsa - 18.2.2010, 16:26
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1139 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.