Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 数组不';不要在执行代码时打印任何内容_C++_Arrays_Loops_Return - Fatal编程技术网

C++ 数组不';不要在执行代码时打印任何内容

C++ 数组不';不要在执行代码时打印任何内容,c++,arrays,loops,return,C++,Arrays,Loops,Return,我正在创建一个函数,它接受一个整数,在这个数之后找到下一个5的倍数,然后如果这个倍数和这个数之间的差小于3,那么它会打印出这个倍数,否则就是这个数本身,最后打印出一个所有数的数组 #include <bits/stdc++.h> #include <iostream> using namespace std; vector<int> gradingStudents(vector<int> grades) { int size=grade

我正在创建一个函数,它接受一个整数,在这个数之后找到下一个5的倍数,然后如果这个倍数和这个数之间的差小于3,那么它会打印出这个倍数,否则就是这个数本身,最后打印出一个所有数的数组

 #include <bits/stdc++.h>
 #include <iostream>

 using namespace std;


vector<int> gradingStudents(vector<int> grades) {
int size=grades.size();
int c=0;
int d;
vector<int> array;
for(int i=0;i<size;i++){

    while(grades[i]>(c*5)){
    c++;
    }
    d=c*5;

    if((d-grades[i])<3){
        array[i]=d;
    }else{
        array[i]=grades[i];
    }
    d=0;
    c=0;
}    
return array ;
#包括
#包括
使用名称空间std;
向量分级学生(向量等级){
int size=grades.size();
int c=0;
int d;
矢量阵列;
对于(int i=0;i(c*5)){
C++;
}
d=c*5;

如果首先((d-grades[i]),我不得不说这段代码效率极低。通过以下方法可以简单地找到最接近的5和一个数字之间的差异:

int差=(n-(n+4)/5*5)-n;
< C++ >舍入除法,所以<代码>(n+1)/5 < /COD>是<代码> n/5 < /Calp>四舍五入,因此<代码>(n+1)/5*5 < /C> >是最接近的乘法5。< /p> 另外,您声明了一个数组,但从未调整其大小,因此其大小为0。您需要通过在构造函数中指定大小或使用
std::vector::resize
方法来调整其大小

代码:

std::向量分级学生(std::向量分级){
std::size_t size=grades.size();
std::向量数组(大小);
对于(int i=0;i
首先,我不得不说,这段代码效率极低。要找出最接近的5和一个数字之间的差异,只需通过以下方法:

int差=(n-(n+4)/5*5)-n;
< C++ >舍入除法,所以<代码>(n+1)/5 < /COD>是<代码> n/5 < /Calp>四舍五入,因此<代码>(n+1)/5*5 < /C> >是最接近的乘法5。< /p> 另外,您声明了一个数组,但从未调整其大小,因此其大小为0。您需要通过在构造函数中指定大小或使用
std::vector::resize
方法来调整其大小

代码:

std::向量分级学生(std::向量分级){
std::size_t size=grades.size();
std::向量数组(大小);
对于(int i=0;i
你的代码可能会崩溃,这就是为什么它不会打印任何东西。它崩溃的一个原因是你的向量使用错误

初学者编写这样的代码是很常见的

vector<int> array;
for (int i=0;i<size;i++) {
    array[i] = ...;
2) 使用
push_back
向向量添加项目,每次调用
push_back
向量的大小都会增加一个

vector<int> array(size);
for (int i=0;i<size;i++) {
    array.push_back(...);
向量数组(大小);

对于(inti=0;i来说,您的代码可能会崩溃,这就是为什么它不会打印任何内容。崩溃的原因之一是您的向量使用错误

初学者编写这样的代码是很常见的

vector<int> array;
for (int i=0;i<size;i++) {
    array[i] = ...;
2) 使用
push_back
向向量添加项目,每次调用
push_back
向量的大小都会增加一个

vector<int> array(size);
for (int i=0;i<size;i++) {
    array.push_back(...);
向量数组(大小);

对于(int i=0;i我觉得你的函数没有什么问题,但是调用这个函数有点棘手,让我给你一个快速的main来尝试一下,可能会对你有所帮助

int main() {

    vector <int> test ;
    test.push_back(1);
    test.push_back(2);
    gradingStudents(test);
    return 0;
}
intmain(){
病媒试验;
测试。推回(1);
测试。推回(2);
给学生打分(测试);
返回0;
}

开始尝试向量的大小是空的,我希望你是从main发送一些东西。你的代码效率很低,只要你有时间就必须阅读如何编写有效的代码。

我觉得你的函数没有问题,但是调用这个函数有点棘手。让我给你一个快速的main来尝试可能会对你有所帮助。

int main() {

    vector <int> test ;
    test.push_back(1);
    test.push_back(2);
    gradingStudents(test);
    return 0;
}
intmain(){
病媒试验;
测试。推回(1);
测试。推回(2);
给学生打分(测试);
返回0;
}

开始尝试向量的大小是空的,我希望您是从main发送一些内容。您的代码效率非常低,只要您有时间,就必须阅读如何编写有效的代码。

向量开始时是空的。空数组中的任何索引都将超出范围。
向量数组(大小);
。关于,“但是,代码不会打印任何内容"这并不奇怪,因为在发布的代码中绝对没有IO,即使你做了我建议的修复。现在我尝试运行这个函数——当没有
main
启动程序时,你是如何运行这个函数的?无关:你似乎只使用
c
将它与
5
相乘,那么为什么不执行
c呢+=5;
而是跳过乘法?@PaulMcKenzie我实际上只是在这里粘贴了函数,而不是整个代码。向量开始是空的。空数组中的任何索引都将是越界的。
向量数组(大小);
。关于“但是代码不打印任何内容”这并不奇怪,因为在发布的代码中绝对没有IO,即使你做了我建议的修复。现在我尝试运行这个函数——当没有
main
启动程序时,你是如何运行这个函数的?无关:你似乎只使用
c
将它与
5
相乘,那么为什么不执行
c呢+=5;
而是跳过乘法?@PaulMcKenzie我实际上只是在这里粘贴了函数,而不是整个代码。谢谢你的建议。谢谢你的建议。