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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверить, что условие 63! -61! =71*k, найти к http://www.cyberforum.ru/cpp-beginners/thread1191111.html
Проверить, что условие 63!-61!=71*k. Найти к? Как это делать, я не знаю
C++ Дана матрица. Найти максимальный и минимальный Элемент каждого столбца 1. Дана матрица А размер 6х7 . Найти максимальный и минимальный Элемент каждого столбца. http://www.cyberforum.ru/cpp-beginners/thread1191101.html
C++ Размен по 2 и 5
Привет всем. Дана логическая задача. Определите, каким количеством купюр по 2 и 5 рублей можно выдать сумму в N (8 ≤ N ≤ 1000000) рублей так, чтобы общее количество выданных купюр было минимальным. У меня с логикой плоховато. Помогите, если не трудно. Заранее спасибо.
C++ Напечатать в порядке возрастания значения
Добрый день, помогите с решением. Дано число x. Напечатать в порядке возрастания значения sin(x),cos(2x),tg(x/2) . Если при каком-либо x некоторые выражения не имеют смысла, то выдать сообщение об этом.
C++ Программа по классам http://www.cyberforum.ru/cpp-beginners/thread1191083.html
Нужна помощь по классам, помогите с написание кода Описать класс, реализующий стек и работу с ним. 1.) Класс должен содержать следующие сведения о наличии автобусов в автобусном парке: • номер автобуса; • фамилию и инициалы водителя; • номер маршрута. 2.) В классе должны быть реализованы следующие операции над стеком: • добавление данных об автобусах в список при въезде каждого автобуса в...
C++ [Linker Fatal Error] Fatal: Expected a file name Установил программу C++ Builder 6. Накидал на форму несколько Panel и Image. Запускаю компиляцию, а появляется ошибка Fatal: Expected a file name. Нашел в интернете, что нужно "в Include path указываем директорию(у каждого по разному) до папки vcl (она находится в include) в Library path до папки lib в Debug sourse path до папки vcl". Проделал это, но ничего не изменилось, всё равно... подробнее

Показать сообщение отдельно
Riddleman
1 / 1 / 4
Регистрация: 03.03.2013
Сообщений: 49
30.05.2014, 15:48     Сортировка в структуре
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
80
81
82
83
84
85
//#include "stdafx.h"
#pragma hdrstop
//#pragma argsused
 
#include <tchar.h>
#include <stdio.h>
#include <string.h> 
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
    system("chcp 1251>0");
 
 
    const int l_name=8;
 
    struct Sotr{
        char name[l_name+1];
        int birth_year;
        int pay;
    };
 
 
 
    const int l_base=4;
    Sotr dbase [l_base];
    char name [l_name+1];
    FILE *fin;
 
 
 
 
    if ((fin=fopen("D:\\Test.txt","r"))==NULL){
        puts ("Ошибка открытия файла");
        system ("pause");
        return 1;
    }
    int i=0;
    while (!feof(fin)){
        fgets(dbase[i].name,l_name,fin);
        fscanf(fin,"%d%d\n",&dbase[i].birth_year,&dbase[i].pay);
        cout<<dbase[i].name<<' '<<dbase[i].birth_year<<' '<<dbase[i].pay<<'\n';
        i++;
        if(i>l_base){puts("Слишком длинный файл"); system ("pause"); return 1;}
        }
 
 
 
 
    for(int i=0; i<l_base; i++)
    {
        int max=i;
        for( int n=(i+1); n<l_base; n++)
        {
            if(dbase[max].pay < dbase[n].pay)
            {
                max=n;
            }
        }
        Sotr t; 
        t.pay = dbase[i].pay;
        strcpy(t.name,dbase[i].name);
        t.birth_year=dbase[i].birth_year;
        dbase[i].pay = dbase[max].pay;
        dbase[i].birth_year = dbase[max].birth_year;
        strcpy(dbase[i].name,dbase[max].name);
        
        dbase[max].pay = t.pay;
        dbase[max].birth_year = t.birth_year;
        strcpy(dbase[max].name ,t.name);
    }
                                    //swap(dbase[j].pay, dbase[j-1].pay);
    FILE *her;
    her=fopen ("D:\\Test2.txt", "w");
    for (i = 0; i <l_base; i++)
    fprintf (her, "%s %d %d\n", dbase[i].name, dbase[i].birth_year, dbase[i].pay);
    fclose(fin);
    fclose(her);
    system ("pause");
 
 return 0;
 
}
Теперь все сортирует как надо. С тебя причетается. Давно я такого говнокода не колотил ))). Да, и начинай изучать указатели.

Добавлено через 10 минут
Да, и начинай изучать указатели. И вообще эту твою структуру зипиндюрить в какой нибудь контейнер, в vector например и небило б гемора. И сканфом ты не умеешь пользоватся, я не переделывал - уменшыл токо количество символов, прими к сведеню.
 
Текущее время: 01:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru