我是C ++的新手,不知道出了什么问题。这是我在uni的程序设计课程中给出的一项任务,旨在让用户输入成绩矢量并确定成绩是否合格。当我编译时,我最终得到一个错误,说明q1.cpp:30:21:错误:无法将'y'从'int'转换为'std :: vector' 不太确定为什么。抱歉格式不正确。
我已经添加了代码但不知道如何包装它。
#include <vector>
#include <cstdlib>
#include <iostream>
using namespace std;
int calcNumberOfPasses(vector<int> grades){
int x;
for (int i=0; i<grades.size(); i++){
cin >>grades[i];
}
cin >> x;
}
int main() {
int y;
vector<int> nGrade;
nGrade.push_back(y);
cout << "Enter how many grades you want to enter";
for (int i=0; i<nGrade.size();i++){
cin >> nGrade[i];
}
cin >> y;
if (y>=50){
cout << "this is a passing grade";
}
calcNumberOfPasses(y);
}
答案 0 :(得分:4)
函数calcNumberOfPasses
期望类型为vector<int>
的参数,您传递的是int
类型的参数。您可以从错误消息中解决这个问题。
您正在将未定义的值复制到此行的向量中:
nGrade.push_back(y); // y hasn't been initialised yet, you probably want to remove this line.
接下来,你循环了尚未初始化的等级向量的大小。
您可能希望calcNumberOfPasses(nGrades);
。
顺便说一下,你应该使用对向量的引用,以避免复制它。
总之,我会通过所有这些代码并重新开始。没有冒犯!
答案 1 :(得分:1)
vector
是一个集合 - 一组基类的项目。它在概念上类似于数组。您正在尝试重复加载单个变量,然后将其传递给期望vector
的函数。
尝试分解您正在编写的功能的步骤。你是:
int
添加到vector
。这个功能有很多问题;我认为你需要确定哪些数据需要去哪里。