Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.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/3/arrays/14.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++,从教科书上做问题。到目前为止,我已经介绍了一些基础知识,如数据类型、声明、显示、赋值、交互式输入、选择(if-else)和重复(for/while循环…),函数和数组。我没有用指针做过任何事情,但我知道它们是什么_C++_Arrays_Function - Fatal编程技术网

从C+返回数组+;作用 我教自己C++,从教科书上做问题。到目前为止,我已经介绍了一些基础知识,如数据类型、声明、显示、赋值、交互式输入、选择(if-else)和重复(for/while循环…),函数和数组。我没有用指针做过任何事情,但我知道它们是什么

从C+返回数组+;作用 我教自己C++,从教科书上做问题。到目前为止,我已经介绍了一些基础知识,如数据类型、声明、显示、赋值、交互式输入、选择(if-else)和重复(for/while循环…),函数和数组。我没有用指针做过任何事情,但我知道它们是什么,c++,arrays,function,C++,Arrays,Function,我遇到了这个问题: 真假测试的答案如下:T。给定一个二维答案数组,其中每一行对应于一个测试中提供的答案,编写一个函数,该函数接受二维数组和测试数作为参数,并返回一个包含每个测试分数的一维数组。(每个问题得5分,因此最高可能得25分。)使用以下数据测试您的功能: 我的理解是C++函数不能返回数组——至少这是我在论坛上其他帖子上看到的。这是正确的吗?如果是的话,他们希望你如何解决这个问题,因为我还没有讨论指针。我认为唯一可能的其他方法是通过引用传入数组。。。。但是问题stem只说函数有两个参数,所

我遇到了这个问题:

真假测试的答案如下:T。给定一个二维答案数组,其中每一行对应于一个测试中提供的答案,编写一个函数,该函数接受二维数组和测试数作为参数,并返回一个包含每个测试分数的一维数组。(每个问题得5分,因此最高可能得25分。)使用以下数据测试您的功能:

我的理解是C++函数不能返回数组——至少这是我在论坛上其他帖子上看到的。这是正确的吗?如果是的话,他们希望你如何解决这个问题,因为我还没有讨论指针。我认为唯一可能的其他方法是通过引用传入数组。。。。但是问题stem只说函数有两个参数,所以我想可能这个方法被排除了。该方法需要第三个参数,该参数是您修改的数组,因此隐式返回

我有一些代码,但它不正确(只有我的calcgrade函数需要工作),我不知道如何前进。请有人建议?谢谢

#include<iostream>

// Globals
const int NROW = 6, NCOL = 5;
bool answers[NCOL] = {1, 1, 0, 0, 1};
bool tests[][NCOL] = {1, 0, 1, 1, 1,
                      1, 1, 1, 1, 1,
                      1, 1, 0, 0, 1,
                      0, 1, 0, 0, 0,
                      0, 0, 0, 0, 0,
                      1, 1, 0, 1, 0};
int grade[NROW] = {0};

// Function Proto-Types
void display1(bool []);
void display2(bool [][NCOL]);
int calcgrade(bool [][NCOL], int NROW);


int main()
{


    calcgrade(tests, NROW);
    display2(tests);

    return 0;
}

// Prints a 1D array
void display1(bool answers[])
{
    // Display array of NCOL
    for(int i = 0; i < NCOL; i++)
        std::cout << std::boolalpha << answers[i] << std::endl;
    return;
}

// Print 2d Array
void display2(bool answers[][NCOL])
{
    // Display matrix:  6x5
    for(int i = 0; i < NROW; i++)
    {
        for(int j= 0; j < NCOL; j++)
        {
            std::cout << std::boolalpha << answers[i][j] << std::endl;
        }
        std::cout << std::endl;
    }

    return;
}

int calcgrade(bool tests[][NCOL], int NROW)
{

    for(int i = 0; i < NROW; i++)
    {
        for(int j = 0; j < NROW; j++)
        {
            if(tests[i][j]==answers[j])
                grade[i] += 5;
        }
        printf("grade[%i] = %i", i, grade[i]);
    }

    return grade;
}
#包括
//全球的
常数int NROW=6,NCOL=5;
布尔答案[NCOL]={1,1,0,0,1};
布尔测试[][NCOL]={1,0,1,1,1,
1, 1, 1, 1, 1,
1, 1, 0, 0, 1,
0, 1, 0, 0, 0,
0, 0, 0, 0, 0,
1, 1, 0, 1, 0};
整数级[NROW]={0};
//函数原型
无效显示1(bool[]);
无效显示2(bool[][NCOL]);
内部计算等级(布尔[][NCOL],内部NROW);
int main()
{
calcgrade(测试,NROW);
显示器2(测试);
返回0;
}
//打印一维数组
无效显示1(布尔答案[])
{
//NCOL显示阵列
对于(int i=0;i
  • 正如您所说,返回指向动态分配数组的指针
  • 您可以使用word
    struct
    创建结构类型,其中包括静态数组、阅读更多内容以及返回/接受类型的参数结构
您可以:

  • 正如您所说,返回指向动态分配数组的指针
  • 您可以使用word
    struct
    创建结构类型,其中包括静态数组、阅读更多内容以及返回/接受类型的参数结构
    • 尝试使用

      向量是序列容器,表示可以改变大小的数组

      你可以这样做:

      vector<bool> function()
      {
        vector<bool> vec;
      
        vec.push_back(true);
        vec.push_back(false);
        vec.push_back(true);
      
        return vec;
      }
      
      向量函数()
      {
      向量向量机;
      向量推回(真);
      向量推回(假);
      向量推回(真);
      返回向量;
      }
      
      尝试使用

      向量是序列容器,表示可以改变大小的数组

      你可以这样做:

      vector<bool> function()
      {
        vector<bool> vec;
      
        vec.push_back(true);
        vec.push_back(false);
        vec.push_back(true);
      
        return vec;
      }
      
      向量函数()
      {
      向量向量机;
      向量推回(真);
      向量推回(假);
      向量推回(真);
      返回向量;
      }
      
      如果您将测试数作为第二个参数传递,这意味着您实际上知道测试数,因此不需要使用
      向量
      。您可以返回动态分配的数组(使用
      new
      malloc

      代码如下所示:

      int* calcgrade(bool tests[][NCOL], int NROW){
        int* array = new int[NROW];
        for(int i=0;i<NROW;i++)
          array[i] = calculatedGrade;
        return array;
      }
      
      int*calcgrade(布尔测试[][NCOL],int-NROW){
      int*数组=新的int[NROW];
      
      对于(int i=0;i如果将测试数作为第二个参数传递,则意味着您实际上知道测试数,因此不需要使用
      向量
      。您可以返回动态分配的数组(使用
      new
      malloc

      代码如下所示:

      int* calcgrade(bool tests[][NCOL], int NROW){
        int* array = new int[NROW];
        for(int i=0;i<NROW;i++)
          array[i] = calculatedGrade;
        return array;
      }
      
      int*calcgrade(布尔测试[][NCOL],int-NROW){
      int*数组=新的int[NROW];
      
      对于(int i=0;i另一种方法是在主函数中创建应答数组,然后将其与T/F数组一起传递给评分函数。然后,评分函数可以对应答数组进行操作,甚至不需要返回任何内容

      本质上,当您在函数中传递数组时,实际上是在传递指向数组的指针,因此您可以像通过引用传递数组一样对它们进行操作(它们就是这样)

      半伪码ex:

      void getGrades( const int answerVector, int gradeVector ) {
          // code that computes grades and stores them in gradeVector
      }
      

      另一种方法是在主函数中创建应答数组,然后将其与T/F数组一起传递给评分函数。然后,评分函数可以对应答数组进行操作,甚至不需要返回任何内容

      本质上,当您在函数中传递数组时,实际上是在传递指向数组的指针,因此您可以像通过引用传递数组一样对它们进行操作(它们就是这样)

      半伪码ex:

      void getGrades( const int answerVector, int gradeVector ) {
          // code that computes grades and stores them in gradeVector
      }
      

      谢谢。我想知道是否有其他方法可以替代你提到的那些方法,因为我还没有涵盖任何这些主题。我只是想看看我到目前为止读到的内容中是否遗漏了什么……谢谢。我想知道是否有其他方法可以替代你提到的那些方法,因为我还没有涵盖任何这些主题。我只是想看看我到目前为止读到的内容中是否遗漏了任何内容……正确的答案是返回一个
      向量
      。如果你的教科书教你的是数组而不是
      向量
      ,那么作者就不应该再被允许写作。我的书甚至没有提到向量(如果你有一本C++书,它没有章节覆盖C++标准库,在<代码> STD::vector < /Cord>,可以说是所有现代C++程序中那个库中最常用的类型,你需要另一本书(和那个作者NEE)。