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

Пример структуры для изучения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычисление занчения http://www.cyberforum.ru/cpp-beginners/thread975073.html
Доброго времени суток, помогите вычислить
C++ Вычисление числа P c заданной точностью e>0 Доброго времени суток, помогите сделать задания. http://www.cyberforum.ru/cpp-beginners/thread975071.html
Выделение из исходной строки символов заданной длины с указанного номера позиции C++
помогите, а то я в ассемблере слаб. нужно написать через сегменты. tasm dseg segment public para 'data' str1 db "123456" l equ $-str1 a db ? s db "$" mes db 10,13,"Vvedite nomer pozicii $" vel db 10,13,"vvedite coli4ectvo cimvolov $" str3 db ? l2 equ $-str2
Напишите программу формирования массива С, компоненты которого определяются по формулам C++
Заданы два массива A и B одинаковой размерности. Напишите программу формирования массива С, компоненты которого определяются по формулам: (4a, если a>b) c= (4b, если b<=a)
C++ Напишите программу формирования массива http://www.cyberforum.ru/cpp-beginners/thread975038.html
Заданы два массива A и B одинаковой размерности. Напишите программу формирования массива С, компоненты которого определяются по формулам: (4a, если a>b) c= (4b, если b<=a)
C++ Структура Помогите нада делать на понедельник известные данные о численности населения и площадь каждой из 7 держав.Визначте название страны с минимальной плотностью населения подробнее

Показать сообщение отдельно
StriBog45
5 / 5 / 2
Регистрация: 03.09.2013
Сообщений: 81
13.10.2013, 09:07  [ТС]     Пример структуры для изучения
Цитата Сообщение от Tsin Посмотреть сообщение
#include <string.h>;
char F1[30] = "Иванов";
char F2[30] = "Сидоров";
int result = strcmp(F1, F2);
// result < 0 - значит, F1 < F2
// result = 0 - значит, F1 = F2
// result > 0 - значит, F1 > F2
Если я правильно понял,то
#include <string.h> нужен для strcmp
F1,F2 входные данные
result = strcmp тот самый цикл который сравнивает алфавит
result < 0 значит, что всё стоит по алфавиту
result = 0 значит, что слова полностью одинаковы
result > 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
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
88
89
90
91
92
93
// 1, Описать структуру с именем WORKER, содержащую следующие поля:
// - фамилия и инициалы работника;
// - название занимаемой должности;
// - год поступления на работу.
// 2. Написать программу, выполняющую следующие действия:
// - ввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER; записи должны быть размещены по алфавиту.
// - вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
// - если таких работников нет, вывести на дисплей соответствующее сообщение.
 
#include "stdafx.h"
#include "iostream"
#include <locale>
#include <conio.h>
#include <string.h>    // Для алфавита,strcmp
#include <Windows.h>   // Для SetConsoleCP(1251);
using namespace std;
 
struct WORKER
{
    char F[30];
    char I[30];
    char O[30];
    char Name[30];
    int Year;
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    const int size = 10;
    int i,b,c = 0;
    char* d;
    WORKER a[size];
    for ( i = 0; i < size; i++ )
    {
        cout << "Введите Ф.И.О. "
             << i + 1
             << "-ого работника "
             << endl;
        cout << "Фамилия: ";
        cin >> a[i].F;
        cout << "Имя: ";
        cin >> a[i].I;
        cout << "Отчество ";
        cin >> a[i].O;
        cout << endl;
        cout << "Его должность: ";
        cin >> a[i].Name;
        cout << endl;
        cout << "Год поступления на работу: ";
        cin >> a[i].Year;
        cout << endl;
    }
 
    for ( i = 0; i < size; i++)
    {
        int result = strcmp(a[i].F, a[i + 1].F);
        if ( a[i].F > a[i + 1].F )
        {
            d = a[i].F;
            a[i].F = a[i + 1].F;
            a[i + 1] = d;
        }
    }
    cout << "Список рабочих: "
         << endl;
    for ( i = 0; i < size; i++)
    {
        cout << a[i].F
             << endl;
    }
 
    cout << "Введите стаж работы ";
    cin >> b;
    cout << endl;
    SetConsoleCP(1251); // Переводит крякозябру на русский язык
    for ( i = 0; i < size; i++)
    {
        if ( b < 2013 - a[i].Year )
        {
            cout << a[i].F
                 << " ";
            c++;
        }
        else if ( i == size - 1 && c > 0 )
        {
            cout << "Работников с более высоким стажом нет.";
        }
    }
 
system("pause");
return 0;
}
 
Текущее время: 06:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru