Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Seroo
59 / 59 / 0
Регистрация: 22.12.2011
Сообщений: 972
1

Сортировка в структуре "Монастырь"

19.03.2012, 14:01. Просмотров 618. Ответов 6
Метки нет (Все метки)

как исравить ети ошибки ?
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
#include <stdio.h>
#include <string.h>
/* Описание структуры, которая представляет монастырь */
struct mon {
  char name[15]; /* название */
  char sc;       /* школа */
  int cnt;       /* количество монахов */
  float sq;      /* площадь */
  } mm[10]; /* определение массива монастирей */
int main(void) {
 struct mmm x; /* рабочая переменная */
 int n;    /* количество элементов в массиве */
 int i, j; /* текущие индексы в массиве */
 int m;    /* индекс минимального элемента */
 float sqx;/* рабочая переменная */
  /* Ввод данных */
  for (n=0; n<10; n++){
    printf("%d. Введите: название, школу, количество, площадь >", 
      n+1);
    scanf("%s",mm[n].name);
    if (!strcmp(mm[n].name,"***")) break;
    scanf("%s",&mm[n].sc);
    scanf("%d",&mm[n].cnt);
    /* Внимание! Мы обходим ошибку в системе программирования */
    scanf("%f",&sqx); mm[n].sq=sqx;
    }
  /* Вывод таблицы */
  printf("---------------------------------------------\n");
  printf("|Буддийське монастыри Японии перiода Нара    |\n");
  printf("|--------------------------------------------|\n");
  printf("| Название  | Школа |Количество|   Площадь   |\n");
  printf("|           |       |  монахов | земель(га)  |\n");
  printf("|-----------|-------|----------|-------------|\n");
  /* вывод строк фактических данных */
  for (i=0; i<n; i++)
    printf("| %9s |   %c   |       %3d | %-5.1f       |\n",
      mm[i].name,mm[i].sc,mm[i].cnt,mm[i].sq);
  printf("---------------------------------------------\n");
  /* сортировка массива */
  for (i=0; i<n-1; i++) {
    m=i; /* минимальный элемент - первый */
    for (j=i+1; j<n; j++)
      /* если текущий элемент > минимального, 
         он становится минимальным */
      if (strcmp(mm[m].name,mm[j].name)>0) m=j;
    if (m>i) {
      /* перестановка первого и минимального элементов */
      strcpy(x.name,mm[i].name); x.sc=mm[i].sc;
      x.cnt=mm[i].cnt; x.sq=mm[i].sq;
      strcpy(mm[i].name,mm[m].name); mm[i].sc=mm[m].sc;
      mm[i].cnt=mm[m].cnt; mm[i].sq=mm[m].sq;
      strcpy(mm[m].name,x.name); mm[m].sc=x.sc;
      mm[m].cnt=x.cnt; mm[m].sq=x.sq;
      }
    }
  /* Вывод таблицы */
  printf("---------------------------------------------\n");
  printf("|Буддийське монастыри Японии перiода Нара    |\n");
  printf("|--------------------------------------------|\n");
  printf("| Название  | Школа |Количество|   Площадь   |\n");
  printf("|           |       |  монахов | земель(га)  |\n");
  printf("|-----------|-------|----------|-------------|\n");
   for (i=0; i<n; i++)
    printf("| %9s |   %c   |       %3d | %-5.1f       |\n",
      mm[i].name,mm[i].sc,mm[i].cnt,mm[i].sq);
  printf("---------------------------------------------\n");
  return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2012, 14:01
Ответы с готовыми решениями:

Сортировка в структуре "Автомобиль"
int _tmain(int argc, _TCHAR* argv) { setlocale(LC_ALL, &quot;rus&quot;); const int n = 6; int...

Сортировка подсчетом и ошибка "Невозможно преобразовать "void*" в "int*"
Мне нужно отсортировать одномерный массив с помощью алгоритма сортировки, однако возникает ошибка...

Создать запись "Двигатель", которая содержит элементы "Название", "Мощность", "Скорость", "Цена"
Создать запись &quot;Двигатель&quot;, которая содержит элементы &quot;Название&quot;, &quot;Мощность&quot;, &quot;Скорость&quot;,...

Исправить ошибки в структуре "Студент"
#include &lt;stdio.h&gt; struct Student { char Name; int Group; float...

Ввести структуру "историческое событие" с полями "число", "месяц", "год", "событие"
Ввести структуру ИСТОРИЧЕСКОЕ СОБЫТИЕ с полями ЧИСЛО, МЕСЯЦ, ГОД, СОБЫТИЕ. Составить и...

6
Nijaz
34 / 34 / 23
Регистрация: 16.12.2010
Сообщений: 100
19.03.2012, 15:52 2
какие ошибки?

Добавлено через 1 час 2 минуты
рабочую переменную неправильно объявляешь;
надо писать:
C++
1
mon x;
1
Seroo
59 / 59 / 0
Регистрация: 22.12.2011
Сообщений: 972
19.03.2012, 19:04  [ТС] 3
а где ошибка в сортировки ? надо отсортировать ее по значениям в первом столбце ?
0
Nijaz
34 / 34 / 23
Регистрация: 16.12.2010
Сообщений: 100
19.03.2012, 21:35 4
нету ошибки. у меня всё прекрасно работает
0
Seroo
59 / 59 / 0
Регистрация: 22.12.2011
Сообщений: 972
19.03.2012, 22:37  [ТС] 5
каким компилятором пользуєшся ?
0
Nijaz
34 / 34 / 23
Регистрация: 16.12.2010
Сообщений: 100
20.03.2012, 14:22 6
visual studio
0
OstapBender
584 / 523 / 75
Регистрация: 22.03.2011
Сообщений: 1,585
20.03.2012, 16:18 7
C
1
scanf("%s",&mm[n].sc);
здесь надо %c
0
20.03.2012, 16:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2012, 16:18

Подсчитать общее количество вхождений в строку символов "А", "a", "B" и "b"
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; main() { int i; int k; ...

"Перевернуть" в строке все слова (Например: "Жили были" в "илиЖ илыб")
&quot;Перевернуть&quot; в строке все слова. (Например: &quot;Жили были дед и баба&quot; - &quot;илиЖ илиб дед и абаб&quot;)

Функция замены ":" на "_" в названии файла и ошибка "undefined reference to 'strcat'"
Добрый день,прошу помочь мне с такой проблемой: В общем есть функция,работающая с именем...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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