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

Сортировка по алфавиту - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как узнать координаты курсора мыши и отобразить их? c++ http://www.cyberforum.ru/cpp-beginners/thread275719.html
Как узнать координаты курсора мыши и отобразить их? c++
C++ Как это сделать? Нужно заменить цифры в числе на ноль, если цифра равна "a". А затем вывести получившееся число. число N - натуральное, а - является цифрой (от 0 до 9). например N = 122223 a = 2 должно получится 100003 Помогите плиз)) http://www.cyberforum.ru/cpp-beginners/thread275698.html
C++ Односвязный список
Люди помогите пожалуйста с лабораторной сделал прогу по заданию а преподаватель говорит что не правильно сделана функция поиска и вообще что это не функция поиска Вот задание: Построить односвязный список из входной последовательности натуральных чисел. Удалить из списка узел, содержащий заданное натуральное число x. Оформить как функцию поиск в списке узла, содержащего заданное натуральное...
имитация нажатие двух клавиш на c++. (alt-f4) C++
будет нажата клавиша p keybd_event('P', 0,0,0); keybd_event('P', 0,KEYEVENTF_KEYUP,0); Но как сделать чтобы нажималось две клавиши одновременно?
C++ Указатели при работе с одномерными и двумерными массивами http://www.cyberforum.ru/cpp-beginners/thread275679.html
Помогите Даны натуральное число n, целые числа а1,...,аn . Выяснить, имеется ли среди чисел а1,...,аn совпадающие.
C++ Работа с avi. Ошибка в коде. Приветствую всех. Работаю с видео при помощи vfw. Есть такой код: /* функция извлечения кадра по индексу */ HBITMAP GetFrame(unsigned int FrameIndex) { HBITMAP hBmp; gapgf=AVIStreamGetFrameOpen(AviStream,NULL); //готовим поток к декомпрессии кадров if(gapgf==NULL) { UnloadAvi(); return NULL; подробнее

Показать сообщение отдельно
Valerko
17 / 17 / 1
Регистрация: 30.11.2010
Сообщений: 164
13.04.2011, 16:04     Сортировка по алфавиту
Ознакамливаюсь со структурами. Все прекрасно, осталось только отсортировать символьные массивы по алфавиту.
Вот мой текст, в комментариях есть все задания.Программа вроде прокомментирована в основных местах

И ещё немного не по теме, но все таки..)
Допустим если я ввожу в имя 1 слово, все хорошо, а если 2(имя-фамилия), то начинаются неконтролируемые действия??

если есть какие-либо замечания в коду, пишите, буду рад.
Учтите только, что структуры только начал учить

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
//1.написать структуру с именем STUDENT содержащую следующие поля:
//фамилия и инициалы, номер группы, успеваемость(5оценок)  -СДЕЛАЛ
 
//2.Написать программу, выполняющую след. действия:
//а. Ввод с клавиатуры данных в массив из 10 структур типа student,  -СДЕЛАЛ
//   записи должны быть упорядочены по алфавиту -НЕ ЗНАЮ
//б. вывод на экран фамилий и номеров групп для всех студентов,
//   имеющих хотя бы 1 оценку "2"  -СДЕЛАЛ
//в. если таких студентов нет, вывести соответствующее сообщение -СДЕЛАЛ
 
 
 
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
 
const int n=2;//переделать под 10 студентов потом
 
struct student
{
char name[30];//имя
char group[10];//группа
int mark[5];//оценка
};
 
int  main()
{
setlocale(0,"Rus");
int i;
student laba[n]; 
cout<<"Лабораторная работа №7\n"
    <<"'Работа со строками.'\n"
    <<"Выполнил студент группы РК-102 Болдорат В.О.\n\n\n";
 
for(i=0;i<n;i++)//заполнение структуры
{
cout<<"Вводим данные о студенте № "<<i+1<<endl;
cout<<"Имя:\t";
cin>>laba[i].name;
cout<<"Группа:\t";
cin>>laba[i].group;
cout<<"Оценки(5шт.):\n";
cin  >> laba[i].mark[0] >> laba[i].mark[1] 
     >> laba[i].mark[2] >> laba[i].mark[3] >> laba[i].mark[4];
OemToChar(laba[i].name,laba[i].name);
OemToChar(laba[i].group,laba[i].group);
}   
 
//вывод нач. данных
cout<<"\n\nВаши введенные данные :\n"
    <<"Номер"<<setw(7)<<"Имя"<<setw(22)<<"Группа"<<setw(22)<<"Оценки"
    <<"\n_____________________________________________________________________________\n";
for(i=0;i<n;i++)
cout<<i+1<<setw(15)<<laba[i].name<<setw(20)<<laba[i].group
    <<setw(20)<<laba[i].mark[0]<<setw(3)<<laba[i].mark[1]<<setw(3)<<laba[i].mark[2]
    <<setw(3)<<laba[i].mark[3]<<setw(3)<<laba[i].mark[4]<<endl;
 
//тут будут записи, упорядоченные по алфавиту
 
 
//студенты с "2"
int flag=0;//для проверки кол-ва студентов с "2"
cout<<"\n\n\nСтуденты, имеющие оценку '2'\n";
for(i=0;i<n;i++)
    if(laba[i].mark[0]==2 || laba[i].mark[1]==2 ||  laba[i].mark[2]==2
      || laba[i].mark[3]==2 || laba[i].mark[4]==2)
    {
    cout<<i+1<<setw(15)<<laba[i].name<<setw(20)<<laba[i].group
        <<setw(20)<<laba[i].mark[0]<<setw(3)<<laba[i].mark[1]<<setw(3)<<laba[i].mark[2]
        <<setw(3)<<laba[i].mark[3]<<setw(3)<<laba[i].mark[4]<<endl;
    flag++;
    }
if(flag==0)
cout<<"\n\n\nСтудентов, имеющих оценку '2' нет."<<endl;
return 0;
}
Добавлено через 15 минут
Извиняюсь, забыл. Сортировать нужно по имени (массив name)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru