Почему возникает ошибка при выполнении простого кода?

При компиляции моего кода возникают следующие ошибки: <br/> <br/> 1. На строке 12 - ошибка: перегруженная функция не имеет контекстной информации о типе. <br/> 2. На строке 19 - ошибка: нет подходящего оператора '<<' (типы операндов - 'std::basic_ostream' и ''). <br/> <br/> Пожалуйста, ознакомьтесь с кодом: <br/> <pre><code class="cpp">// Game Stats
#include &lt;iostream&gt;
using namespace std;
int main ()
{
    int score;
    double disctance;
    char playAgain;
    bool shieldsUp;
    short lives, aliensKilled;
    score = 0;
    distance = 1200.76;
    playAgain = 'y';
    shieldsUp = true;
    lives = 3;
    aliensKilled = 10;
    double engineTemp = 6572.89;
    cout &lt;&lt; "\nscore: " &lt;&lt; score &lt;&lt; endl;
    cout &lt;&lt; "distance: " &lt;&lt; distance &lt;&lt; endl;
    cout &lt;&lt; "playAgain: " &lt;&lt; playAgain &lt;&lt; endl;
    cout &lt;&lt; "lives: " &lt;&lt; lives &lt;&lt; endl;
    cout &lt;&lt; "aliensKilled: " &lt;&lt; aliensKilled &lt;&lt; endl;
    cout &lt;&lt; "engineTemp: " &lt;&lt; engineTemp &lt;&lt; endl;
    int fuel;
    cout &lt;&lt; "\nHow much fuel? ";
    cin &gt;&gt; fuel;
    cout &lt;&lt;  "fuel: " &lt;&lt; fuel &lt;&lt; endl;
    typedef unsigned short int ushort;
    ushort bonus = 10;
    cout &lt;&lt; "\nbonus" &lt;&lt; bonus &lt;&lt; endl;
    return 0;
}</code></pre>
  • 5 сентября 2024 г. 12:12
Ответы на вопрос 2
В вашем коде возникают две основные проблемы, которые приводят к ошибкам компиляции. Давайте разберем каждую из них.

1. **Ошибка на строке 12 (перегруженная функция не имеет контекстной информации о типе)**:
   На самом деле ошибка заключается в неправильном написании переменной `distance`. В вашем коде вы написали `disctance`, что является опечаткой. А на строке 12 вы пытаетесь вывести переменную `distance`, которой на самом деле нет в вашем коде. Исправьте на `distance` (вместо `disctance`).

2. **Ошибка на строке 19 (нет подходящего оператора '<<')**:
   В вашем коде символы `<<` и `>>` были заменены на `&lt;&lt;` и `&gt;&gt;`, что вызвало ошибку компиляции. Эти символы должны быть декодированы обратно для корректного выполнения. Вот исправленный код:

```cpp
// Game Stats
#include <iostream>
using namespace std;

int main ()
{
    int score;
    double distance; // Исправлено имя переменной
    char playAgain;
    bool shieldsUp;
    short lives, aliensKilled;
    score = 0;
    distance = 1200.76; // Исправлено
    playAgain = 'y';
    shieldsUp = true;
    lives = 3;
    aliensKilled = 10;
    double engineTemp = 6572.89;

    cout << "\nscore: " << score << endl; 
    cout << "distance: " << distance << endl; // Исправлено
    cout << "playAgain: " << playAgain << endl;
    cout << "lives: " << lives << endl;
    cout << "aliensKilled: " << aliensKilled << endl;
    cout << "engineTemp: " << engineTemp << endl;

    int fuel;
    cout << "\nHow much fuel? ";
    cin >> fuel;
    cout << "fuel: " << fuel << endl;

    typedef unsigned short int ushort;
    ushort bonus = 10;
    cout << "\nbonus: " << bonus << endl; // Исправлено (добавлен двоеточие для ясности)

    return 0;
}
```

Теперь код должен компилироваться без ошибок. Убедитесь, что у вас правильная версия компилятора, так как могут быть различия в синтаксисе или поддерживаемых функциях.
У вас переменная: double dis С tance;, а присваиваете значение и пытаетесь вывести переменную distance . Т.е. исправьте наименование переменной.
Похожие вопросы