由于错误,C ++代码无法在Visual Studio上运行,但不会显示任何错误

时间:2019-05-28 20:41:13

标签: c++ visual-studio-2017

我编写了一个简单的程序,使用给定的转换来输出不同的温度单位。当我在Visual Studios上运行代码时,由于构建错误而无法运行,但未显示任何错误。我曾问过类似的问题,但看不到能解决我问题的任何答案。我还想知道我应该在main函数之前还是之后声明变量。

#include <iostream>

using namespace std;

int fahrenheit, i=0;
float celsius, absolute_value;

main() {
    cout.width(20);
    cout << "Fahrenheit" << "Celsius" << "Absolute value\n";
    for (i = 0; i = 15; i += 1) {
        fahrenheit = i * 20;
        celsius = ((fahrenheit - 30) * 5) / 9;
        absolute_value = celsius + 273.15;
        cout.width(20); /*each item in next output will have width of at least 20*/
        cout << fahrenheit << celsius << absolute_value;
    }
    system("pause");
    return 0;
}

3 个答案:

答案 0 :(得分:1)

#include <iostream>

int main() {
    std::cout << "Fahrenheit\t" << "Celsius\t\t" << "Absolute value\n";
    for (int i = 0; i <= 15; i++) 
    {
        const int fahrenheit = i * 20;
        const float celsius = ((fahrenheit - 32.0) * 5) / 9;
        const float absolute_value = celsius + 273.15;
        std::cout << fahrenheit << "\t\t" << celsius << "\t\t"<< absolute_value << "\n";
    }
    system("pause");
    return 0;
}

问题已解决:

  • main必须返回int
  • 循环有分配而不是比较
  • 变量不应该是全局变量
  • using namespace std;应该避免
  • 华氏到摄氏度的公式是错误的
  • 摄氏温度尽管是浮动的,但还是用整数算术计算的
  • const正确性
  • 化妆品:带制表符的格式化输出

答案 1 :(得分:0)

我修复了一些编码错误。我认为仍然存在一些逻辑错误,但是现在代码编译和程序应该运行了

#include <iostream>
using namespace std;

int main() {
    cout.width(20);
    cout << "Fahrenheit" << "Celsius" << "Absolute value\n";
    for (int i = 0; i <= 15; i += 1) {
        int fahrenheit = i * 20;
        float celsius = ((fahrenheit - 30) * 5) / 9;
        float absolute_value = celsius + 273.15;
        cout.width(20); /*each item in next output will have width of at least 20*/
        cout << fahrenheit << ' ' << celsius << ' ' << absolute_value << '\n';
    }
    system("pause");
    return 0;
}

您缺少iostream的包含内容和main函数的返回类型。我还将全局变量的声明移到了第一次使用变量的位置。 for循环是一个无限循环。因此,我将i = 15更改为i <= 15。也许您想要像i < 15这样的循环条件。我还在值之间添加了空格和换行符。

答案 2 :(得分:0)

您需要将int返回类型添加到main签名中。

在c ++中,标准期望main函数返回一个int,就像它期望该函数被称为main一样。返回最常用作退出代码,其中0通常表示成功执行且没有错误。

在其中添加此内容将使您的程序得以编译和运行。