Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
DeLLoN
0 / 0 / 2
Регистрация: 15.06.2015
Сообщений: 8
#1

Сортировка в структуре - C++

15.06.2015, 04:52. Просмотров 684. Ответов 5
Метки нет (Все метки)

Нужно создать структуру, вбить туда инфу: имя, факультет, группа, пропусков. вывести список у кого больше пропусков (отсортировать пожалуй, не обязательно) 10 чел. или сколько есть.

Добавлено через 39 минут
написал, по идеи должно работать, но ругается на strcmp "невозможно преобразовать параметр 1 из "char" в "const char *""
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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
struct vidomist
{
    char name;
    char phak;
    char grup;
    char propusk;
};
 
struct vidomist stud [12];
struct vidomist buf;
FILE  *fp,*fp1;
int minG;
int i,j;
 
 
int main()
{
    fp=fopen("input.txt","r");
    fp1=fopen("output.txt","w");
    for (i=0; i<12; i++)
    {
        fscanf(fp,"%s\t%s\t%s\t%d\n",stud[i].name, stud[i].phak, stud[i].grup, &stud[i].propusk);
    }
    fclose(fp);
 for (i=0;i<12;i++)
     {
     printf("%s\t",stud[i].name);
     printf("%s\t",stud[i].phak);
     printf("%s\t",stud[i].grup);
     printf("%d\n",stud[i].propusk);
 }
 getch();
 for (i=0;i<11;i++)
     {
         for (j=i+1;j<12;j++)
             if ( strcmp (stud[i].name, stud[j].name)>0){
                 buf=stud[i];
                 stud[i]=stud[minG];
                 stud[minG]=buf;
             }
 }
 printf("\nOUTPUT.TXT:\n");
 for (i=0; i<12; i++)
 {
     fprintf (fp1,"%s\t%s\t%s\t%d\n",stud[i].name, stud[i].phak, stud[i].grup, stud[i].propusk);
     printf("%s\t%d\n",stud[i].name, stud[i].propusk);
 }
 fclose (fp1);
 getch();
 return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2015, 04:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сортировка в структуре (C++):

Сортировка в структуре
Структура: struct Worker { string Name; ...

Сортировка в структуре
Нужно считать в структуру информацию из файла, и отсортировать по зарплате. В...

Сортировка в структуре
По заданию нужно ввести данные в структуре, отсортировать по цене (от...

Сортировка в структуре
Надо отсоритровать структуру по параметру &quot;Телефон&quot; Листал форум, вроде все...

Сортировка данных в структуре
Здравствуйте, как отсортировать структуру по количеству детей в семье ...

Сортировка данных в Структуре С++
Доброго времени суток, дорогие форумчане! Возникла следующая проблема. Нужно...

5
Croessmah
++Ͻ
14161 / 8086 / 1513
Регистрация: 27.09.2012
Сообщений: 19,926
Записей в блоге: 3
Завершенные тесты: 1
15.06.2015, 05:16 #2
А Вы в курсе, что
C++
1
char name;
это только под один символ?

А %s считывает целую ораву символов(до разделителя)?
0
DeLLoN
0 / 0 / 2
Регистрация: 15.06.2015
Сообщений: 8
15.06.2015, 05:46  [ТС] #3
Croessmah,
я это понимаю и учел во время работы. Я нашел способ как сделать что б все заработало но текст и цифры нечитает
0
Croessmah
++Ͻ
14161 / 8086 / 1513
Регистрация: 27.09.2012
Сообщений: 19,926
Записей в блоге: 3
Завершенные тесты: 1
15.06.2015, 06:28 #4
Цитата Сообщение от DeLLoN Посмотреть сообщение
я это понимаю и учел во время работы.
Где код с исправлениями?
0
DeLLoN
0 / 0 / 2
Регистрация: 15.06.2015
Сообщений: 8
15.06.2015, 06:47  [ТС] #5
ошибка где то в этой строке
C++
1
fscanf(fp,"%s\t %s\t %s\t %d\n",stud[i].name, stud[i].phak, stud[i].grup, stud[i].propusk);
в таком виде пишет что не может обработать. если заменить "%s" на другую функцию тогда текст плохо читается и выдает в таком виде:
(null) (null) (null) 0
(null) (null) (null) 0
(null) (null) (null) 0
(null) (null) (null) 0
(null) (null) (null) 0
(null) (null) (null) 0
(null) (null) (null) 0
(null) (null) (null) 0
(null) (null) (null) 0
(null) (null) (null) 0
(null) (null) (null) 0
(null) (null) (null) 0

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
#include "stdafx.h"
#include <tchar.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <cstring>
 
 
using namespace std;
 
struct vidomist
{
    char name;
    char phak;
    char grup;
    char propusk;
};
 
struct vidomist stud[12];
struct vidomist buf;
FILE *fp,*fp1;
int minG;
int i,j;
 
int main()
{
    fp=fopen("input.txt","r");
    fp1=fopen("output.txt","w");
    for (i=0; i<12; i++)
    {
        fscanf(fp,"%s\t %s\t %s\t %d\n",stud[i].name, stud[i].phak, stud[i].grup, stud[i].propusk);
    }
    fclose(fp);
 for (i=0;i<12;i++)
     {
     printf("%s\t",stud[i].name);
     printf("%s\t",stud[i].phak);
     printf("%s\t",stud[i].grup);
     printf("%d\n",stud[i].propusk);
 }
 getch();
 for (i=0;i<11;i++)
     {
         for (j=i+1;j<12;j++)
             if ( strcmp (&stud[i].name, &stud[j].name)>0){
                 buf=stud[i];
                 stud[i]=stud[minG];
                 stud[minG]=buf;
             }
 }
 printf("\nOUTPUT.TXT:\n");
 for (i=0; i<12; i++)
 {
     fprintf (fp1,"%s\t%s\t%s\t%d\n",stud[i].name, stud[i].phak, stud[i].grup, stud[i].propusk);
     printf("%s\t%d\n",stud[i].name, stud[i].propusk);
 }
 fclose (fp1);
 getch();
 return 0;
}
данные в входном файле:
Alex inform INB 20
Calex mat HEr 30
Balex ist JVKNR 51
Lalex hornb KME 2
Ealex vmmrr LECJ 10
Alex inform INB 5
Calex mat HEr 7
Balex ist JVKNR 3
Lalex hornb KME 4
Ealex vmmrr LECJ 6
Alex inform INB 21
Calex mat HEr 32
0
Croessmah
++Ͻ
14161 / 8086 / 1513
Регистрация: 27.09.2012
Сообщений: 19,926
Записей в блоге: 3
Завершенные тесты: 1
15.06.2015, 06:48 #6
Цитата Сообщение от DeLLoN Посмотреть сообщение
ошибка где то в этой строке
Цитата Сообщение от DeLLoN Посмотреть сообщение
я это понимаю и учел во время работы
В каком месте учли?
Еще раз внимательно перечитайте пост #2
0
15.06.2015, 06:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2015, 06:48
Привет! Вот еще темы с решениями:

Сортировка по фамилии в структуре
Посмотрите пожалуйста структуру Студент! Нужно сделать сортировку по...

Сортировка данных в структуре
Написал код для структуры, содержащей список фамилий, имен, номеров телефона,...

Сортировка в структуре (ошибка в коде)
void sort () { setlocale(LC_ALL, &quot;Russian&quot;); int lo; ...

Сортировка и поиск данных в структуре
Имеется структура данных: название института, номер корпуса, название кафедры и...


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

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

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