Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vova_Sim
2 / 2 / 0
Регистрация: 07.11.2012
Сообщений: 50
#1

Описать структуру. Ошибка в коде - C++

23.06.2013, 19:12. Просмотров 315. Ответов 3

9. Описать структуру с именем ZNAK, содержащую следующие поля: фамилия, имя, знак зодиака, дата рождения (массив из трёх чисел). Написать программу, выполняющую следующие действия:
Ввод с клавиатуры данных в массив, состоящий из восьми структур типа ZNAK, вывод на экран информации о человеке, чья фамилия введена с клавиатуры. Упорядочить структуры по алфавиту (фамилии).
прошу найти ошибку, в выводе и заполнении структуры...ну я так думаю...результат прикрепил
C++
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "stdio.h"
#include "string.h"
//#include ".h"
//using namespace System;
 
int _tmain(int a)
{    int i, j, n, b,d, flag; char isk[10]; char dan[10];
    setlocale(LC_ALL,"Russian");    
    n=5;
  struct ZNAK
   {//определение структурного типа ZNAK
     char f[10];//Фамилия
     char name[7];//Имя
     char znak[9];//Знак
     int x[3];//День, Месяц, Год
     
   } array[6];
  flag=0;
  for (i=0; i<n; i++)
{
  printf("Введите фамилию: ");
  scanf_s("%s", array[i].f);
  printf("Введите имя: ");
  scanf_s("%s", array[i].name);
  printf("Введите знак зодиака: ");
  scanf_s("%s", array[i].znak);
  printf("Введите дату рождения в цифровом формате: ");
  
  for (j=0; j<3;j++)
  scanf_s("%d",&(array[i].x[j]));
  printf("\n");
}
   for (d=0; d<n-1; d++) 
        for (i=0; i<n-1-d; i++){          
            if (array[i].x[2] > array[i+1].x[2])
             {array[5]=array[i];
             array[i]=array[i+1];
             array[i+1]=array[5];}
          if (array[i].x[2] == array[i+1].x[2]){
           if (array[i].x[1] > array[i+1].x[1]){
              array[5]=array[i];
              array[i]=array[i+1];
              array[i+1]=array[5];}
           if (array[i].x[1] == array[i+1].x[1])
              if (array[i].x[0] > array[i+1].x[0]){
                  array[5]=array[i];
                  array[i]=array[i+1];
                  array[i+1]=array[5];}
 
          } }
   for (i=0; i<n; i++){
    printf("\n\nФамилия: %s",array[i].f);
    printf("\nИмя: %s",array[i].name);
    printf("\nЗнак зодиака: %s", array[i].znak);
     for (j=0; j<3;j++)
    printf("\nДата рождения: %d", array[i].x[j]);
    printf("\n");
   }
  printf("Введите фамилию искомого человека: ");
  scanf_s("%s", isk);
  printf("\n\nИмеющаяся информация:");
 
  for (i=0; i<n; i++)
{if (strcmp(array[i].f,isk)==0) {
    printf("\nФамилия: %s",array[i].f);
    printf("\nИмя: %s",array[i].name);
    printf("\nЗнак зодиака: %s", array[i].znak);
    flag=1;
     for (j=0; j<3;j++)
    printf("\nДата рождения: %d", array[i].x[j]);
  }
 }
  if (flag==0) printf("Искомый человек не найден");
     _getch();
     return 0;
}
http://cs538610.vk.me/u105108036/doc...013_175620.png
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2013, 19:12     Описать структуру. Ошибка в коде
Посмотрите здесь:

Описать структуру. Ошибка в коде - C++
Нашел ошибку

Описать структуру с именем STUDENT. Исправить ошибки в коде - C++
Проверьте пожалуйста! Задание такое: описать структуру с именем STUDENT, содержащую следующие поля: а)фамилия и имя(строка 15 символов),...

Описать структуру с именем TIMETABLE (найти и исправить ошибки в коде, улучшить код) - C++
Описать структуру с именем TIMETABLE, содержащий следующие поля: NAZV - название пункта назначения, NUMR - номер поезда, DATE - дата...

Описать структуру с названием NOTE: ошибка - C++
Описать структуру с названием NOTE, которая состоит из таких полей: фамилия, имя номер телефона дата рождения (массив из трех...

Вывод из файла в структуру, ошибка в коде С++ - C++
В чем ошибка в коде? В файле записаны имя и пол в строчку через пробел. Программа запускается но не вывод структуру. Буду...

Ошибка в программе (Описать структуру с именем NOTE) - C++
Описать структуру с именем NOTE, содержащую следующие поля: - фамилия, имя; - номер телефона; - дата рождения Написать...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
23.06.2013, 19:17     Описать структуру. Ошибка в коде #2
@Vova_Sim, после того, как вы ввели строку в буфере остается символ перевода строки, иначе говоря "enter". Его нужно зачистить. После любого ввода строки поставьте что-то типа:
C++
1
scanf("%s", crap);
предварительно объявив
C++
1
char crap[10]; // 10 символов на всякий случай
Иначе говоря, вводы строк будут выглядеть не так:
C++
1
2
scanf("%s", a);
scanf("%s", b);
,- а так:
C++
1
2
3
4
scanf("%s", a);
scanf("%s", crap);
scanf("%s", b);
scanf("%s", crap);
А вообще это _getch() вроде ловит тоже (смотрю, у вас conio.h есть)
Vova_Sim
2 / 2 / 0
Регистрация: 07.11.2012
Сообщений: 50
23.06.2013, 19:31  [ТС]     Описать структуру. Ошибка в коде #3
сейчас попробую. спасибо)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2013, 20:21     Описать структуру. Ошибка в коде
Еще ссылки по теме:

Описать структуру STUDENT - C++
у меня такое задание: Описать структуру с именем STUDENT, содержащую следующие поля: • фамилия и инициалы; • номер группы; ...

Описать структуру MUSEUM - C++
Описать структуру MUSEUM (название музея, время работы, стоимость билета, адрес). Введите данные в массив, состоящий из шести элементов...

Описать структуру ZNAK - C++
Описать структуру ZNAK, содержащую следующие поля: • Фамилия, имя • Знак зодиака • Дата рождения (массив из 3 чисел). Программа...

Описать структуру Train - C++
Здравствуйте! Нашел на форуме старый код но здесь не работает поиск помогите доработать +1.Спасибо. #include&lt;iostream&gt; ...

Описать структуру Метро - C++
Начал работать со структурами, но пока что не очень разобрался. я щас пытаюсь отладить ввод вывод структуры : название станции метро :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.06.2013, 20:21     Описать структуру. Ошибка в коде #4
Фамилия, имя, знак состоят из одного слова:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
for (i=0; i<n; i++)
{
  printf("Введите фамилию: ");
  scanf("%s", array[i].f);
  printf("Введите имя: ");
  scanf("%s", array[i].name);
  printf("Введите знак зодиака: ");
  scanf("%s", array[i].znak);
  printf("Введите дату рождения в цифровом формате: ");
  
  for (j=0; j<3;j++)
  scanf("%d",&(array[i].x[j]));
...
Yandex
Объявления
23.06.2013, 20:21     Описать структуру. Ошибка в коде
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru