由于错误,C++ 代码不会 运行 在 Visual Studios 上,但未显示任何错误
c++ code won't run on Visual Studios due to errors but no errors are shown
我编写了一个简单的程序来使用给定的转换输出不同的温度单位。当我 运行 Visual Studios 上的代码时,它不会 运行 由于构建错误但没有显示错误。我见过类似的问题,但看不到任何解决我问题的答案。我也想知道我是否应该在主函数之前或之后声明变量。
#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;
}
我修正了一些编码错误。我认为仍然存在一些逻辑错误,但现在代码编译和程序应该 运行
#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
函数的 return 类型。我还将全局变量的声明移到了第一次使用变量的地方。 for 循环是一个无限循环。所以我把i = 15
改成了i <= 15
。也许你想要一个像 i < 15
这样的循环条件。我还在值之间添加了空格和换行符。
您需要将 int
return 类型添加到 main
签名。
在 c++ 中,标准期望 main
函数为 return 和 int
,就像它期望调用函数 main
一样。 return 最常用作退出代码,其中 0
通常表示成功执行且没有错误。
添加这个应该允许你的程序编译和运行。
#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;
}
已解决的问题:
- 主必return
int
- 循环有赋值而不是比较
- 变量不应该是全局的
using namespace std;
应该避免
- 华氏度到摄氏度的公式是错误的
- 摄氏度是用整数算法计算的,尽管它是浮点数
const
正确性
- 修饰:带制表符的格式化输出
我编写了一个简单的程序来使用给定的转换输出不同的温度单位。当我 运行 Visual Studios 上的代码时,它不会 运行 由于构建错误但没有显示错误。我见过类似的问题,但看不到任何解决我问题的答案。我也想知道我是否应该在主函数之前或之后声明变量。
#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;
}
我修正了一些编码错误。我认为仍然存在一些逻辑错误,但现在代码编译和程序应该 运行
#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
函数的 return 类型。我还将全局变量的声明移到了第一次使用变量的地方。 for 循环是一个无限循环。所以我把i = 15
改成了i <= 15
。也许你想要一个像 i < 15
这样的循环条件。我还在值之间添加了空格和换行符。
您需要将 int
return 类型添加到 main
签名。
在 c++ 中,标准期望 main
函数为 return 和 int
,就像它期望调用函数 main
一样。 return 最常用作退出代码,其中 0
通常表示成功执行且没有错误。
添加这个应该允许你的程序编译和运行。
#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;
}
已解决的问题:
- 主必return
int
- 循环有赋值而不是比较
- 变量不应该是全局的
using namespace std;
应该避免- 华氏度到摄氏度的公式是错误的
- 摄氏度是用整数算法计算的,尽管它是浮点数
const
正确性- 修饰:带制表符的格式化输出