Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.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++;数组函数与操作_C++_Arrays - Fatal编程技术网

C++ C++;数组函数与操作

C++ C++;数组函数与操作,c++,arrays,C++,Arrays,好的,我有一个课堂实验作业,要做一个程序,这个程序要做很多事情: 1.名为convertWeight的空洞函数将磅(int型)和盎司的重量转换为千克(int型)和克的等效重量 一个名为showArray的void函数,它接受两个参数:一个基类型为int的数组参数,一个用于数组参数大小的值调用参数。此函数只打印数组参数的所有元素,其中两个连续元素由水平选项卡分隔 在main()函数定义中,执行以下操作: a。声明一个名为磅的数组,该数组包含10个整数,将其前3个元素初始化为以下值:1、5、10,并

好的,我有一个课堂实验作业,要做一个程序,这个程序要做很多事情: 1.名为convertWeight的空洞函数将磅(int型)和盎司的重量转换为千克(int型)和克的等效重量

  • 一个名为showArray的void函数,它接受两个参数:一个基类型为int的数组参数,一个用于数组参数大小的值调用参数。此函数只打印数组参数的所有元素,其中两个连续元素由水平选项卡分隔

  • 在main()函数定义中,执行以下操作:

  • a。声明一个名为磅的数组,该数组包含10个整数,将其前3个元素初始化为以下值:1、5、10,并将其余元素自动初始化为0

    b。编写一个for循环,读取7个磅的权重,将输入的值存储到最后7个磅 数组的元素为磅

    c。打印一行提示行“整个重量列表:”然后调用函数showArray显示整个数组磅数

    d。编写另一个for循环,该循环调用函数convertWeight,将数组磅中给定的每种重量(以磅为单位)转换为等效重量(以千克和克为单位)

    这就是我想到的:

    #include <iostream>
    using namespace std;
    
    
    void convertWeight(int pounds, double ounces, int& kg, double& grams);
    //Preconditions: parameters pounds and ounces are nonnegative numbers, representing a     weight in pounds and ounces
    //Postcondition: parameters kg and grams will be set to values of the equivalent weight   in kilograms and grams
    void showArray(int pounds[10]);
    
    int main()
    {
            int pounds[10]={1, 5, 10}, i, a, kg;
        double ounces, grams;
    
        cout << "Enter 7 additional weights in pounds: \n";
        cin >> pounds[3];
    
        for(i = 4; i < 10; i++)
        {
            cin >> pounds[i];
        }
    
        cout << "The entire list of weights: \n";
    
        showArray(pounds[10]);
    
        for(a = 0; a < 10; a++)
        {
            pounds = pounds[a];
            convertWeight(pounds, ounces, kg, grams);
            cout << pounds[a] << " pounds = " << kg << " kgs and " << grams << "    grams";
        }
    
    
        return 0;
    }
    
    void showArray(int pounds[10])
    {
        cout << pounds[0] << "     " << pounds[1] << "     " << pounds[2] << "     " <<  pounds[3] << "     " << pounds[4] << "     " << pounds[5] << "     "
         << pounds[6] << "     " << pounds[7] << "     " << pounds[8] << "     " <<   pounds[9] << "     " << pounds[10] << "     " ;
    }
    
    //Do NOT modify this function definition
    void convertWeight(int pounds, double ounces, int& kg, double& grams)
    {
      const double KGS_PER_POUND =  0.45359237;
      const double OUNCES_PER_POUND = 16.0;
      const double GRAMS_PER_KG = 1000.0;
    
      double totalKgs;
      totalKgs = (pounds + ounces/OUNCES_PER_POUND)*KGS_PER_POUND;
      kg = static_cast<int>(totalKgs);
      grams = (totalKgs - kg)*GRAMS_PER_KG;
    }
    
    任何帮助givin都将不胜感激

    c:\users\mackiller\documents\VisualStudio2010\projects\lab12\lab12\lab12.cpp(30):错误C2664:“showArray”: 无法将参数1从“int”转换为“int[]”1>
    从整数类型转换为指针类型需要 重新解释_类型转换、C类型转换或功能类型转换

    问题就在这里

    showArray(pounds[10]);
    
    如果不传递数组,它将尝试访问数组的第11个元素(并调用未定义的行为),然后将其传递给
    showArray
    (以指针作为参数)。你想在那里做的是:

    showArray(pounds);
    
    1> c:\users\mackiller\documents\visual studio 2010\projects\lab12\lab12\lab12.cpp(34):错误C2440:“=”:无法 从“int”转换为“int[10]”1>没有转换 到数组类型,尽管存在到引用或 指向数组的指针

    这个问题在这里:

    pounds = pounds[a];
    
    您正试图将
    int
    分配给数组。你根本不需要那句话:

    convertWeight(pounds[a], ounces, kg, grams);
    
    这也修复了此错误:

    1> c:\users\mackiller\documents\visual studio 2010\projects\lab12\lab12\lab12.cpp(35):错误C2664:“convertWeight” :无法将参数1从“int[10]”转换为“int”1>
    没有可以进行此转换的上下文


    磅=磅[a]-不能将单个数组元素分配给数组变量本身。只要定义一个新的int变量,并有一个非冲突的名称。我要使用for循环的变量“a”,它改变了每一个循环的值,为什么堆栈溢出上的许多C++问题有某种80年代风格的命令行接口?另外,尽可能使用C数组,不要使用C数组。非常感谢!我现在明白了。我好像走错方向了。还有一件事。由于它修复了我的错误,它给了我新的错误:错误C2109:下标需要数组或指针类型它在函数showArray中连续给了我10次这个错误。我似乎把这个程序搞错了。我打印阵列的方式是否有其他方法或修复方法?
    convertWeight(pounds[a], ounces, kg, grams);