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

Определите структуру Pair – пара «имя = значение» - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не могу понять условие(решать не нужно) http://www.cyberforum.ru/cpp-beginners/thread756703.html
Условие: Дана матрица, элементы которой целые числа из сегмента . Две строки эквивалентны, если множества элементов этих строк равны. Определить количество классов эквивалентных строк. Что понимать под классом эквивалентных строк?
C++ В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку Вот задание: В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку. #include <iostream> #include <cstdlib> #include <iomanip> using namespace std; const int M=30; const int N=30; int main() { http://www.cyberforum.ru/cpp-beginners/thread756665.html
схема алгоритма к функции main C++
очень нужна схема алгоритма , сам не могу сделать) кто может напишите) Листинг 1 – файл main.cpp #include <iostream> #include <fstream> using namespace std; class Cpanel {
C++ Заполнение матрицы вложенными рамками
Помогите пожалуйста написать программу, вот условие Составьте алгоритм и напишите программу, которая заполнит матрицу MxN (М >N) вложенными рамками, каждая из кото¬рых изображается числом, равным разности между N и номе¬ром рамки. Причем внешнюю рамку считать первой. Напри¬мер, для N = 5 и М = 8 результат будет следующим: 44444444 43333334 43222234 43333334 44444444
C++ Определить, есть ли в данной матрице строка, состоящая только из элементов, принадлежащих промежутку от А до В http://www.cyberforum.ru/cpp-beginners/thread756652.html
Определить, есть ли в данной матрице строка, состоящая только из элементов, принадлежащих промежутку от А до В. А и В вводятся с клавиатуры Вот мой код:#include <iostream.h> #include <stdlib.h> #include <time.h> void main()  } int const n=6; int const m=4; int C, A, B, max, min; cout<<"Print A, B"<<endl; cin>>A>>B>>flush;
C++ Перенести k букв в конец слово Дано слово. Перенести первые k букв в конец Добавлено через 7 минут например: слово:--> строка к:--> 2 ответ:-- Добавлено через 41 секунду рокаст подробнее

Показать сообщение отдельно
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
09.01.2013, 18:45     Определите структуру Pair – пара «имя = значение»
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
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <iostream>
#include <cstring>
 
struct Pair
{
    char* name; //имя
    int value;  //значение
};
 
#define MAX_PAIRS 100
 
struct Pairs
{
    Pair items[MAX_PAIRS];  //массив пар
    int count;              //количество пар в массиве
};
 
// создаёт в куче копию строки src и возвращает на неё указатель 
char* StrDup(const char* src)
{
    char* dest = new char[std::strlen(src) + 1];
    return std::strcpy(dest, src);
}
 
int GetValue(const Pairs *p, const char *name, int *var)
{ 
    for (int i = 0; i < p->count; i++)
    {
        // сравниваем строки с помощью функции strcmp(если она возвращает 0, то строки равны)
        if(std::strcmp(p->items[i].name, name) == 0)
        {
            // помещаем найденное значение в переменную адрес которой хранит переменная var
            *var = p->items[i].value; 
            
            // найдено
            return 1; 
        }
    }
    
    return 0; // не найдено
}
 
void SetValue(Pairs* p, const char* name, int value) 
{       
    for (int i = 0; i < p->count; i++)
    {
        // сравниваем строки с помощью функции strcmp(если она возвращает 0, то строки равны)
        // условие вида if(p->items[i].name == name) сравнит указатели(адреса), а не строки
        if (std::strcmp(p->items[i].name, name) == 0)
        {
            p->items[i].value = value; 
            return; // и никаких flag'ов
        }        
    }
    
    p->items[p->count].name = StrDup(name);
    p->items[p->count].value = value;
    p->count++;
}
 
void PrintPairs(const Pairs *p) 
{
    for (int i = 0; i < p->count; i++)
    {
        std::cout << p->items[i].name << " -> ";
        std::cout << p->items[i].value << "\n";
    }
}
 
void Init(Pairs *p)
{
    p->count = 0;
}
 
void Free(Pairs *p)
{
    for (int i = 0; i < p->count; i++)
        delete[] p->items[i].name;
}
 
int main ()
{
    Pairs d;
    Init(&d);
        
    SetValue(&d, "lolooo", 25);            
    SetValue(&d, "lol" , 40);    
    
    PrintPairs(&d);
    
    //-----
    
    int value;
    
    if(GetValue(&d, "lol", &value) == 0)    
        std::cout << "not found\n";        
    else    
        std::cout << value << "\n";    
    
    //-----
    
    SetValue(&d, "lol" , 10);        
    PrintPairs(&d);    
    
    Free(&d);
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru