C++ Visual Studio 无法完全运行程序
C++ Visual Studio Won't fully run program
我有这个程序,我觉得我终于使我的代码正确了,但是我的输出永远不会打印出我的星号。我的一个伙伴告诉我,要通过另一个编译器运行它。我使用了jdoodle,我的代码正常工作。无论如何,我都无法在Visual Studio中正确运行。我更新了所有内容。有人有任何建议吗?我将留在这里,很想知道它在Elses Visual Studio中是否有问题,或者我是否与编译器有问题。预先感谢。
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int* histo(int* scores, int count);
double dev(int count, int* scores);
double mean(int count, int* scores);
int main()
{
int scores[101];
int count = 0;
cout << "Enter a score (-1 to stop): ";
do
{
cin >> scores[count++];
} while (scores[count - 1] != -1);
count--;
int* bins = histo(scores, count);
for (int i = 9; i >= 0; i--)
{
cout << i << "| ";
for (int j = 0; j < bins[i]; j++)
{
cout << "*";
}
cout << endl;
}
delete[] bins;
cout << "mean: " << mean(count, scores) << endl;
cout << "dev: " << dev(count, scores) << endl;
system("pause");
return 0;
}
int* histo(int* scores, int count)
{
int* bins = new int[10];
for (int i = 0; i < count; i++)
{
if (scores[i] < 10)
{
bins[0]++;
}
else if (scores[i] >= 10 && scores[i] < 20)
{
bins[1]++;
}
else if (scores[i] >= 20 && scores[i] < 30)
{
bins[2]++;
}
else if (scores[i] >= 30 && scores[i] < 40)
{
bins[3]++;
}
else if (scores[i] >= 40 && scores[i] < 50)
{
bins[4]++;
}
else if (scores[i] >= 50 && scores[i] < 60)
{
bins[5]++;
}
else if (scores[i] >= 60 && scores[i] < 70)
{
bins[6]++;
}
else if (scores[i] >= 70 && scores[i] < 80)
{
bins[7]++;
}
else if (scores[i] >= 80 && scores[i] < 90)
{
bins[8]++;
}
else if (scores[i] >= 90)
{
bins[9]++;
}
}
return bins;
}
double dev(int count, int* scores)
{
double x = 0;
double y = 0;
double std_dev = 0;
double mean_t;
mean_t = mean(count, scores);
for (int i = 0; i < count; i++)
{
x = pow(scores[i] - mean_t, 2);
y += x;
}
std_dev = sqrt(y / count);
return std_dev;
}
double mean(int count, int* scores)
{
double total = 0;
for (int i = 0; i < count; i++)
{
total += scores[i];
}
return total / count;
}
您似乎假设堆栈/堆上的自动变量初始化为0,它们不是。例如。int* bins = new int[10];
为您提供了10个可能具有任何价值的非专业整数的数组,这可以解释为什么它与一个编译器一起使用,而另一个编译器则不适用。
因此,您的histo
功能可能会返回带有垃圾的数组。例如-1,-1337,...
相关文章:
- 运行程序时出现问题
- 分段错误当我试图运行程序时出错
- C++ 每次运行程序时我都会"nan"输出的问题
- 通过 g++ 运行程序时没有这样的文件或目录
- 重新运行程序和字符串流?
- 无法在 VS Code 上使用代码运行程序运行C++文件
- 使用有限的 RAM 运行 c++ 程序
- 继续运行程序而无需任何干预,直到要求退出为止
- 如何在每次运行程序时写入文件的下一行?
- 控制台在运行C ++程序后立即关闭(无需调试)
- 运行程序时找不到共享对象库,但在编译过程中链接了它
- 远程运行程序
- 在 Heroku 上运行 C++ 程序
- 如何在Powershell中运行C++程序,就像CMD一样?
- 为什么与Java和Python相比,使用Cmake运行C++程序每次都需要这么长时间?
- C++随机数生成器通常在 Visual Studio 中运行程序时在 2 次后停止生成数字
- 崇高文本 3 - 在终端中编译并运行 C++ 程序(路径包含空格)
- 我收到阻止我运行程序的警告,但不确定如何解决
- C++ Visual Studio 无法完全运行程序
- 在SIGABRT c ++信号之后继续运行程序