【发布时间】:2018-05-21 19:27:43
【问题描述】:
请帮忙,我不明白哪里出错了,编译后程序没有任何显示。需要创建 2 个堆栈,其中一个将包含随机数,另一个将仅包含来自第一个堆栈的数字,这大于第一个堆栈中所有数字的平均值
#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;
struct stack //our stack
{
int num;
stack* ptr = NULL;
};
void addtostack(int &n, stack* p) //add element to stack
{
stack* newstack = new stack;
newstack->num = n;
newstack->ptr = p;
p = newstack;
}
void showstack(stack* p) //show stack
{
stack* current = p;
while (current->ptr)
{
cout << current->num << endl;
current = current->ptr;
}
}
int main()
{
srand(time(NULL));
const int SIZE = 5;
stack* first = new stack;
int rnd;
double average = 0;
for (int i = 0; i < SIZE; i++)
{
rnd = -50 + rand() % 101;
addtostack(rnd, first);
average += rnd;
}
average /= SIZE;
showstack(first);
system("pause > nul");
}
【问题讨论】:
-
您遇到了什么问题? (错误信息、行为等)
-
visual studio 不显示任何错误信息
-
那么问题是没有错误?
-
很遗憾地通知您,您没有得到正确的教育。这是可怕的代码。这并不可怕,因为您是初学者并且不知道更好,这很可怕,因为您被教导编写可怕的代码。如果你想学习 C++ buy a book 而忽略他们教给你的一切。
-
您是否使用调试器来确保每一行都按照您的预期进行?是否可以编写单元测试来测试您的个人方法?我们一直为 C#、Java 和 JavaScript 这样做。