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

C++, отсортировать методом выбора текстовый файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Пишу ОС, нужен доступ к экрану http://www.cyberforum.ru/cpp-beginners/thread533217.html
Здравствуйте! Пишу свою ОС, основная работа на ассемблере есть, теперь осталось написать на Си. Проблема такая, есть адрес видеопамяти 0xb8000, нужно создать к ней указатель, затем запустить цикл, и циклом обнулить экран, размер экрана задан как: #define VIDEO_WIDTH 80 //ширина экрана #define VIDEO_HEIGHT 25 //высота экрана , кто знает как обнулить экран?
C++ Операция с файлами, графика нужна помощь Ребята помогите решить две задачки на С, очень прошу Вашей помощи, к сожалению мне девушке это не по силе, а друзей программистов нету, решила обратится на этот форум программистов. 1. Задан файл f, содержащий информацию об автомобиле (марка, номер, фамилия владельца) Вывести количество автомобилей каждой марки. 2. Нарисовать голубым цветом квадрат, в нем нарисовать желтым цветом круг,... http://www.cyberforum.ru/cpp-beginners/thread533216.html
C++ В строке вместо названия показывает какое-то число
В строке вместо названия (nazvanie в моей программе) показывает какое-то число, вместо слов (Smart,Kingston,LG)#include <stdio.h> #include <stdlib.h> #include<conio.h> int k; void main() { clrscr(); struct informacia { char nositel; int obem; char nazvanue; char avtor;}
C++ С Паскаля на С++. Реализация модели распределения памяти.
Задание. Программа реализация модели распределения памяти перемещаемыми разделами. Program Model_raspredelenia_pameati; uses crt; const n=10; type massiv=array of integer; Label L1,L2,L3; Var A:massiv; y:string; i,j,k,g,sum,w,x :integer; begin clrscr; randomize; {включение генератора случайных чисел }
C++ Преобразовать последовательность из n вещественных чисел a1, ..., an. http://www.cyberforum.ru/cpp-beginners/thread533194.html
Ребят подкиньте идей. Дана последовательность из n вещественных чисел a1, ..., an. Преобразовать ее по следующему правилу: а) первый элемент равен первому элементу; б) второй равен max(a1, a2); в) третий - max(a1, a2, a3); . . . . . . . . . . . Добавлено через 1 час 46 минут UP UP!
C++ Поиск корней (включая комплексные) полинома n-й степени Надо прожку на вижуале... чтобы искала все корни (включая комплексные) полинома н-й степени, когада известны коэвициенты... подробнее

Показать сообщение отдельно
rush2331
4 / 4 / 0
Регистрация: 27.03.2012
Сообщений: 13
28.03.2012, 23:53     C++, отсортировать методом выбора текстовый файл
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
86
87
/*
in_file.txt:
Фамилия Имя Отчество 1992 1 2 3 4 5
Амилия Имя Отчество 2991 5 4 3 2 1
Буслаев Сергей Антонович 1233 8 4 6 23 5
Буслаев Сергей Антонович 1232 8 4 6 23 5
Говоров Петя Петрович 1422 2 2 2 2 2
Иванов Иван Иванович 5692 5 5 5 5 5
*/ 
 
#include <fstream>
 #include <iostream>
 
using namespace std;
 
struct student
{
char family[20], name[20], otc[20];
int year;
int ball[5];
};
 
 
void main()
 {   
    student students[10]; //список из 10 студентов
    ifstream fin;  // Поток fin будем использовать для чтения
    ofstream fout; // Поток fout будем использовать для записи
    
    fin.open("in_file.txt");
    fout.open("out_file.txt");
 
    //Читаем
    for (int j=0; j<10; j++){
        fin >> students[j].family >> students[j].name >> students[j].otc >> students[j].year;
        for (int i=0; i<5; i++){
            fin >> students[j].ball[i];
        }
    }
 
    /*Сортировка методом простого выбора сводится к следующим шагам: 
    1. Установить номер наибольшего элемента массива. 
    2. Поменять местами наибольший и последний элементы массива. 
    3. Оставив в покое последний элемент, выполнить пункты 1 и 2 над 
    остатком массива (массивом без последнего элемента). Пункт 3 повторять, 
    пока остаток массива не сократится до одного элемента.*/
    
    student temp;
    int t;
    
    for (int i=9; i>-1; i--){
        //находим наибольший элемент
        student max = students[0];
        for (int j=0; j<10; j++){ 
            for (int z = 0; z < strlen(students[j].family); z++){
                if (students[j].family[z] > max.family[z]){
                        max = students[j];
                        t = j;
                }
            }
        }
        temp = students[i];
        students[i] = max;
        students[t] = temp;
    }
 
    //Если одинаковые фамилии, смотрим по году рождения
    for (int i=0; i<10; i++){
        if (students[i].family[strlen(students[i].family)] == students[i+1].family[strlen(students[i].family)]){ //т.к. уже отсортированы по фамилиям
                if (students[i].year > students[i+1].year){
                    temp = students[i+1];
                    students[i+1] = students[i];
                    students[i] = temp;
                }
        }   
    }
 
 
    //Вывод в файл
    for (int j=0; j<10; j++){
        fout << students[j].family << " " << students[j].name << " " << students[j].otc << " " << students[j].year;
        for (int i=0; i<5; i++){
            fout << " " << students[j].ball[i];
        }
        fout << endl;
    }
}
 
Текущее время: 08:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru