Ткните лицом в косяк

    #include <iostream>
    using namespace std;
    int main()
    {
        double C, M, K;
        cout << 'C = ';
        cin >> C;
        cout << 'M = ';
        cin >> M;
        cout << 'K = ';
        cin >> K;

        float first = 25.5;
        float second = 39.6;
        float third = 125.6;

        float sum = 0;

        sum = (C*first) + (M*second + (K*third);

        cout << "Result = ";
        cout << C*first << '+' << M*second << '+' << K*third;
        cout << " = " << sum << endl << endl;

        return 0;

    }

При выполнение вылезает непонятные цифры.
Решил усложнить задачу из шилдта, но при этом получил код, который не могу разобрать.
Заранее спасибо за ответ.

castly, во-первых, «При выполнение» быть не может, даже если не принимать во внимание орфографическую ошибку. Оно просто не компилируется. Ошибка в строке

sum = (C*first) + (M*second + (K*third);

Во-вторых, по классике, выражение 'C = ' ошибочно, т.к. одиночные кавычки определяют символьный (тип char, один байт) литерал. Современные продвинутые компиляторы выдают только предупреждение и, видимо, трактуют такой авангардизм как юникодовый code point. Что, на мой консервативный взгляд, не есть правильно, но тем не менее.

Выводы:
1. Читать выдачу компилятора после компиляции!!!
2. Не жать кнопку «Канэшна хачу!», не читая сообщения интегрированной среды разработки!!!
3. Привести код в такое состояние, когда компиляция проходит без предупреждений (не говоря уж о сообщениях об ошибках!).
4. При определении строковых литералов одиночные кавычки заменить на двойные.

Спасибо за ответ, поменял ковычки на двойные и все заработало)

castly, а первые три пункта выполнил? Мне кажется там должно быть еще минимум три предупреждения компилятора.

На удивление выполнилось даже без предупреждений, хотя может я просто косоглазый и не увидел очевидного)

castly, вообще-то странно. Должны быть ещё четыре предупреждения о возможной потере точности при присваивании значения типа double переменной типа float.

Cranium, ну я пока немного рукожоп, поэтому для меня радость, что эта программа в принципе запустилась.
Но я обращу внимание на замечания и разберусь.
Спасибо за ответы всем)

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.