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

Ошибка в коде. Помогите исправить. - C++

Восстановить пароль Регистрация
 
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
19.12.2012, 19:33     Ошибка в коде. Помогите исправить. #1
Здравствуйте. Компилятору не нравитса моё проравнивание.
Что не так?
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
              cout << " Find Record "<< endl;
              
              int t;
              
              cout << " Enter account number: ";
              cin >> t;
              
              string m[5][4] = {{" 1"," fds"," fvd"," 2"},
                    {" 2"," nhj"," uky"," 3"},
                    {" 3"," njk"," mjy"," 4"},
                    {" 4"," mjk"," mkj"," 5"}};
                    
                    if(t = m[0][0])
                    {
                         cout << " Account number:" << m[0][0] << "\t\n User name:" << m[0][1] << "\t\n User surname:" << m[0][2] << "\t\n Balance:" << m[0][3] << endl;
                    }
                    else if(t = m[1][0])
                    {
                         cout << "\t\n\n Account number:" << m[1][0] << "\t\n User name:" << m[1][1] << "\t\n User surname:" << m[1][2] << "\t\n Balance:" << m[1][3] << endl;
                    }
                    else if(t = m[2][0])
                    {
                         cout << "\t\n\n Account number:" << m[2][0] << "\t\n User name:" << m[2][1] << "\t\n User surname:" << m[2][2] << "\t\n Balance:" << m[2][3] << endl;
                    }
                    else if(t = m[3][0])
                    {
                         cout << "\t\n\n Account number:" << m[3][0] << "\t\n User name:" << m[3][1] << "\t\n User surname:" << m[3][2] << "\t\n Balance:" << m[3][3] << endl;
                    }
                    else if(t = m[4][0])
                    {
                         cout << "\t\n\n Account number:" << m[4][0] << "\t\n User name:" << m[4][1] << "\t\n User surname:" << m[4][2] << "\t\n Balance:" << m[4][3] << endl;
                    }
                    else
                    {
                        cout << " Error. Sorry such account does not exist. Try again."
                    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 19:35     Ошибка в коде. Помогите исправить. #2
t = m[0][0] - типы не совпадают, строку с целым значением сравниваешь. К тому же, операция сравнения ==

Да и вообще, циклы же есть. А если в матрице 100 строк будет или 1000?
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
19.12.2012, 19:35     Ошибка в коде. Помогите исправить. #3
Цитата Сообщение от mster-doc Посмотреть сообщение
if(t = m[0][0])
C++
1
if(t == m[0][0])
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
19.12.2012, 19:47  [ТС]     Ошибка в коде. Помогите исправить. #4
Цитата Сообщение от v.a.l.i.d Посмотреть сообщение
C++
1
if(t == m[0][0])
тоже не работает

Добавлено через 4 минуты
Цитата Сообщение от Schizorb Посмотреть сообщение
t = m[0][0] - типы не совпадают, строку с целым значением сравниваешь. К тому же, операция сравнения ==

Да и вообще, циклы же есть. А если в матрице 100 строк будет или 1000?
Я могу только циклом пробижатся по масиву чтобы он мне подряд всё вывел, но незнаю как из него вытащить оприделённый элемент, и ещё незнаю как сделать чтобы из этого цикла оккуратно выдоваласть бы информация на экран, ото он сплошным текстом всё выдаёт.
Если не трудно подскажите пожалуйсто.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 20:06     Ошибка в коде. Помогите исправить. #5
Цитата Сообщение от mster-doc Посмотреть сообщение
как из него вытащить оприделённый элемент
C++
1
2
3
4
5
for(int i = 0; i < size; ++i)
{
    if(arr[i][0] == t)
    ....... 
}
Цитата Сообщение от mster-doc Посмотреть сообщение
он сплошным текстом всё выдаёт.
использовать пробелы, табуляции и переход на новую строку. У тебя же есть это в коде...

Добавлено через 7 минут
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
#include <iostream>
#include <string>
using namespace std;
 
int main()
{            
    const int rows = 5;
    const int cols = 4;
    
    string m[rows][cols] = 
    {
        {"1"," fds"," fvd"," 2"},
        {"2"," nhj"," uky"," 3"},
        {"3"," njk"," mjy"," 4"},
        {"4"," mjk"," mkj"," 5"}
    };
    
    string t;
    
    cout << " Find Record "<< endl;
    cout << " Enter account number: ";
    cin >> t;
 
    bool find = false;
    
    for(int i = 0; i < rows; ++i)
    {
        if(m[i][0] == t)
        {
            find = true;
            cout << " Account number:" << m[i][0] 
                 << "\n User name:" << m[i][1] 
                 << "\n User surname:" << m[i][2] 
                 << "\n Balance:" << m[i][3] << endl;
        }
    }
 
    if(!find)
    {
        cout << " Error. Sorry such account does not exist. Try again\n";
    }
 
    return 0;
}
И вообще, удобнее же структуру использовать, не? Смысл хранить номер в строковой переменной
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
19.12.2012, 20:16  [ТС]     Ошибка в коде. Помогите исправить. #6
И проще и нет. Со структурами ещё хуже))
C++
1
2
3
4
5
6
7
struct clientData
{
       int accNum;
       char Name[10];
       char Sur[15];
       float balance;
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cout << " Add new recourd "<< endl;
              
              clientData recourd[1];
              
              for(int i = 0; i < 1; i++)
              {
                      cout << " Input account number: ";
                      cin >> recourd[i].accNum;
                      
                      cout << " Input client name: ";
                      cin >> recourd[i].Name;
                      
                      cout << " Input client surname: ";
                      cin >> recourd[i].Sur;
                      
                      cout << " Input client balance: ";
                      cin >> recourd[i].balance;
                      
              }

но вот как из этого сделать список...
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 20:27     Ошибка в коде. Помогите исправить. #7
C++
1
2
3
4
5
6
7
const int size = 4;
clientData m[size];
 
for(int i = 0; i < size; ++i)
{
    //ввод
}
Добавлено через 4 минуты
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
#include <iostream>
#include <string>
using namespace std;
 
struct clientData
{
       int accNum;
       char Name[10];
       char Sur[15];
       float balance;
};
 
int main()
{            
    const int size = 4;
    
    clientData m[size];
    
 
    for(int i = 0; i < size; ++i)
    {
        cout << " Input account number: ";
        cin >> m[i].accNum;
 
        cout << " Input client name: ";
        cin >> m[i].Name;
 
        cout << " Input client surname: ";
        cin >> m[i].Sur;
 
        cout << " Input client balance: ";
        cin >> m[i].balance;
        
        cout << "\n";
    }
    
    
    int t;
    
    cout << " \n\nFind Record "<< endl;
    cout << " Enter account number: ";
    cin >> t;
 
    
    bool find = false;
    
    for(int i = 0; i < size; ++i)
    {
        if(m[i].accNum == t)
        {
            find = true;
            cout << " Account number:" << m[i].accNum
                 << "\n User name:" << m[i].Name
                 << "\n User surname:" << m[i].Sur
                 << "\n Balance:" << m[i].balance << endl;
        }
    }
 
    if(!find)
    {
        cout << " Error. Sorry such account does not exist. Try again\n";
    }
 
    return 0;
}
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
19.12.2012, 21:14  [ТС]     Ошибка в коде. Помогите исправить. #8
а как сделать список из структур?
просто так получаетса всего только 1 элемент списка из 4х пунктов
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 21:27     Ошибка в коде. Помогите исправить. #9
Как это 1, когда у меня массив структур?
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
19.12.2012, 22:01  [ТС]     Ошибка в коде. Помогите исправить. #10
а как сделать так чтобы ново введённое имя номер аакаунта фамилия и баланс добовлялось в список?
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 22:04     Ошибка в коде. Помогите исправить. #11
mster-doc, все уже сделано, не тупи.
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
19.12.2012, 22:15  [ТС]     Ошибка в коде. Помогите исправить. #12
простите сглупил с вопросом

Добавлено через 7 минут
сущиствует ли в языке С++ какойнибудь скрипт удоляющий запись?
если мне нужно удолить определённую запись из списка?
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 22:32     Ошибка в коде. Помогите исправить. #13
Цитата Сообщение от mster-doc Посмотреть сообщение
сущиствует ли в языке С++ какойнибудь скрипт удоляющий запись
Если просто массив, то как вариант "удалять" сдвигом последующих.

Или используй контейнеры STL.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2012, 22:56     Ошибка в коде. Помогите исправить.
Еще ссылки по теме:

C++ Помогите исправить ошибку в коде (fatal error LNK1120: unresolved externals) я новичек
Программа-ошибка. Помогите исправить C++
Исправить ошибки в коде C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
19.12.2012, 22:56  [ТС]     Ошибка в коде. Помогите исправить. #14
почему данное выражение компилятором не принимается?
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
              int d;
              
              cout << " Change the balance of the account "<< endl;
              
              cout << " Enter account number:";
              cin >> d;
              
              const int size = 4;
              clientData m[size];
 
              
                 bool find = false;
                 
                 for(int i = 0; i < size; ++i)
                 {
                         if(m[i].accNum == d)
                         {
                                        find = true;
                                        cout << " Account number:" << m[i].accNum
                                             << "\n User name:" << m[i].Name
                                             << "\n User surname:" << m[i].Sur
                                             << "\n Balance:" << m[i].balance << endl;
                                             
                                        cout << " Enter new balance:"
                                        cin >> m[i].balance;
                         }
                 }
                 
                 if(!find)
                 {
                          cout << " Error. Sorry such account does not exist. Try again\n";
                 }
а именно строку ввода нового баланца

C++
1
2
3
4
5
6
7
                                        cout << " Account number:" << m[i].accNum
                                             << "\n User name:" << m[i].Name
                                             << "\n User surname:" << m[i].Sur
                                             << "\n Balance:" << m[i].balance << endl;
                                             
                                        cout << " Enter new balance:"
                                        cin >> m[i].balance;
Добавлено через 19 минут
всё, спасибо, сообразил я забыл ";"
Yandex
Объявления
19.12.2012, 22:56     Ошибка в коде. Помогите исправить.
Ответ Создать тему
Опции темы

Текущее время: 16:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru