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

Проблемма с логическим оператором if - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Непонятная ошибка http://www.cyberforum.ru/cpp-beginners/thread334155.html
Не могу понять, где неправильно. У меня есть такая матрица А 1 4 2 1 3 6 1 5 2 2 3 5 Мне же её надо преобразовать к такому виду - В: 4 0 0 0 1 6 5 2 5 В матрице А числа идут как бы парами. Как получается матрица В из А? Пусть b - элемент матрицы В. i - номер строки в матрице А. j - первый элемент "пары", а значение - второй элемент.
C++ Как поместить в массив строк строку Есть такой вот массив char s; ну или char** s; я никак не могу разобраться в этих указателях(( 1.Как поместить в него строку 2.Как извлечь из него строку http://www.cyberforum.ru/cpp-beginners/thread334152.html
Вывод строки в текстовый файл C++
Вместо строки появляется нечто вроде 25d3fe4 Подскажите пожалуйста, в чем ошибка? ofstream fout; String str = Now(); fout << str.c_str();
ofstream & ifstream :: binary read-write struct C++
Не пойму в чем дело... но я не могу считать всю структуру FNTBINARY из файла, файл - это она и есть в бинарном виде, одна структура FNTBINARY. Размер структуры 72412, файл на диске весит 72440 откуда, берутся 8 байт? Формат записи-чтения установлен бинарный. Читается только часть, до chars... дальше мусор. Проверял, что пишется структура полностью адекватная перед записью, содержит нормальные...
C++ Непонятная ошибка http://www.cyberforum.ru/cpp-beginners/thread334132.html
Нужно считать в вектор пар все числа, отличные от нуля. В паре - первое число - всегда типа int, второе - double. Написал небольшую ф-цию. Но не получается считать. Проблема - в одной строчке.. не понимаю как ее решить. "Debug Assertion failed" - vector subscript out of range. Из файла считываю вот такую последовательность: 1 4 0 2 1 3 6 0 1 5 2 2 3 5 0 А вот мой код: double b; vector...
C++ Посоветуйте книги по C++ Я уже хорошо знаю PHP, но вот решил перейти на C++. Я с другом договорились создавать игры. Я программист он художник. Мне как программисту нужно будет писать игровой движок(пожалуйста не предлагайте покупать\брать бесплатные движки созданые другими программистами). Посоветуйте пожалуйста книги по C++. И скажите могу ли я использовать знания PHP для изучения C++ и если да то как? подробнее

Показать сообщение отдельно
Yashman
 Аватар для Yashman
1 / 3 / 0
Регистрация: 02.07.2011
Сообщений: 90
18.07.2011, 17:46     Проблемма с логическим оператором if
Всем привет. Мне надо было написать такую програмку: если пользователь вводит символ 'y' (yes), то он задаёт данные в структуру, которые в последствии отображаются, а елси пользователь вводит символ 'n' (no), то на экран выводятся данные структуры по умолчанию. Вот моя неправильно работающая программа:


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
#include <iostream>
using namespace std;
 
struct CandyBar 
{
       char name[20];
       double mass;
       int calory;
};
void show_struct (CandyBar & ChocoBar, char *pt = "Millennium Munch", double m = 2.85, int c = 350);
 
int main()
{
    CandyBar ChocoBar;
    cout << "Would you like to give some info for a struct? (type 'y' if yes and 'n' if no) : ";
    char choice;
    cin >> choice;
    if (choice == 'n')
    show_struct(ChocoBar);
    else if (choice == 'y')
    {
      cout << "Enter candy's name: ";
          cin.get(ChocoBar.name, 20).get();
          cout << "Enter candy's mass: ";
          (cin >> ChocoBar.mass).get();
          cout << "Enter candy's calory: ";
          (cin >> ChocoBar.calory).get();
           show_struct (ChocoBar, ChocoBar.name, ChocoBar.mass, ChocoBar.calory);
    }
 
        system("pause > nul");
        return 0;
}
 
void show_struct (CandyBar & ChocoBar, char *pt, double m, int c)
{
     cout << "Candy's name: " << pt << endl;
     cout << "Candy's mass: " << m << endl;
     cout << "Candy's calory: " << c << endl;
}
её результат выполнения нормален, если ввести символ 'n', но елси ввести 'y', то выходит такой бред:

Would you like to give some info for a struct? (type 'y' if yes and 'n' if no) :
y
Enter candy's name: Enter candy's mass: Enter candy's calory: Candy's name:
Candy's mass: 5.00792e-312
Candy's calory: 228

если убрать в программе логический оператор, что-бы вышло

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
#include <iostream>
using namespace std;
 
struct CandyBar 
{
       char name[20];
       double mass;
       int calory;
};
void show_struct (CandyBar & ChocoBar, char *pt = "Millennium Munch", double m = 2.85, int c = 350);
 
int main()
{
    CandyBar ChocoBar;
    cout << "Enter some info for a struct: ";
      cout << "Enter candy's name: ";
          cin.get(ChocoBar.name, 20).get();
          cout << "Enter candy's mass: ";
          (cin >> ChocoBar.mass).get();
          cout << "Enter candy's calory: ";
          (cin >> ChocoBar.calory).get();
           show_struct (ChocoBar, ChocoBar.name, ChocoBar.mass, ChocoBar.calory);
 
        system("pause > nul");
        return 0;
}
 
void show_struct (CandyBar & ChocoBar, char *pt, double m, int c)
{
     cout << "Candy's name: " << pt << endl;
     cout << "Candy's mass: " << m << endl;
     cout << "Candy's calory: " << c << endl;
}
то все нормально.Как изменить ту часть с логическим оператором, что-бы программа работала как надо?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru