【发布时间】:2018-07-19 05:55:51
【问题描述】:
我正在尝试构建一个简单的程序,可以在选举期间计算选票。
程序应首先询问候选人有多少,然后创建一个 candNUMB 列表。之后,程序要求指定每个候选名称,应将其添加到相应的列表中。例如:
candidate n1: Paul
candidate n2: Frank
candidate n3: John
现在我们有 3 个列表,程序应该反复要求您投票(直到您说停止),然后将投票添加到每个列表(保罗、弗兰克、约翰)。最终程序会打印出结果。
调试显示未在此范围内声明的候选 [candNUMB]。我错过了什么?
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int candNUMB = 0;
int candidate[candNUMB] = {0};
cout << "I can count votes during an election. Try me." << endl << endl;
cout << "Let's start. Specify the number of candidates: ";
cin >> candNUMB;
cout << endl << "There are " << candNUMB << " candidates. Specify each name." << endl;
for (int i = 0; i < candNUMB; i++)
{
cout << "Insert candidate n*" << i + 1 << " name: ";
cin >> candidate[i];
}
return 0;
}
编辑:添加 int candNUMB = 0;
现在程序根本不会启动。
Process Returned -107374ecc
【问题讨论】:
-
candNUMB声明在哪里? -
您永远不会将变量
candNUMB设置为任何值。 -
投反对票,错字错误(忘记声明变量)
-
如何在
int数组中输入string?另外,零大小的数组 (candNum=0) 有什么用?我不确定也不介意,但我认为您对基础知识不清楚。 -
@fxJK -- 如果您添加了该代码,则该数组不是合法的 C++ 语法。 C++ 中的数组必须使用常量表达式而不是变量来声明。又一个新程序员被
gcc的脑死方法烧毁/愚弄,让 VLA 默认被接受。