Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
';无法转换';浮动';至';浮动*';对于参数';1'; 我是一个信息技术专业的学生,学习C++,我觉得它很有趣。然而,在实验中,我发现了一些我自己也无法在网上找到的东西。 代码如下: #include <iostream> using namespace std; float average(float array[10], float &average){ int i = 0; for( i = 0; i != 10; i++ ){ cout << "Vett ("<<i<<") = "; cin >> array[i]; while(cin.fail()) { cin.clear(); cin.ignore(); system("Color 5C"); cout << "\nPlease insert a number: "; cin >> array[i]; } average = average + array[i]; } average = average / 10; return array[10]; return average; } main(void){ float vett[10], media; int i; char loop; vett[10] = 0; media = 0; do{ system("cls"); system("Color 00"); cout<<"****************************************"<<endl; cout<<"*** INSER THE DATA TO COMPUTE ***"<<endl; cout<<"****************************************\n"<<endl; /* for( i = 0; i != 10; i++ ){ cout << "Vett ("<<i<<") = "; cin >> vett[i]; while(cin.fail()) { cin.clear(); cin.ignore(); system("Color 5C"); cout << "\nPlease insert a number: "; cin >> vett[i]; } media = media + vett[i]; } media = media / 10; */ average(vett[10],media); for( i = 0; i != 10; i++ ){ cout << vett[i]<<" "; } if(media == 0){ cout << "\nATTENTION the average equals to = "<<media<<endl; } else{ cout << "\nThe average is"<<media<<endl; } printf("\n"); cout << "\nDo You want to continue? Y/N"; cin >> loop; } while(loop == 'Y' || loop == 'y'); system("pause"); }_C++_Arrays_Function_Pointers - Fatal编程技术网

';无法转换';浮动';至';浮动*';对于参数';1'; 我是一个信息技术专业的学生,学习C++,我觉得它很有趣。然而,在实验中,我发现了一些我自己也无法在网上找到的东西。 代码如下: #include <iostream> using namespace std; float average(float array[10], float &average){ int i = 0; for( i = 0; i != 10; i++ ){ cout << "Vett ("<<i<<") = "; cin >> array[i]; while(cin.fail()) { cin.clear(); cin.ignore(); system("Color 5C"); cout << "\nPlease insert a number: "; cin >> array[i]; } average = average + array[i]; } average = average / 10; return array[10]; return average; } main(void){ float vett[10], media; int i; char loop; vett[10] = 0; media = 0; do{ system("cls"); system("Color 00"); cout<<"****************************************"<<endl; cout<<"*** INSER THE DATA TO COMPUTE ***"<<endl; cout<<"****************************************\n"<<endl; /* for( i = 0; i != 10; i++ ){ cout << "Vett ("<<i<<") = "; cin >> vett[i]; while(cin.fail()) { cin.clear(); cin.ignore(); system("Color 5C"); cout << "\nPlease insert a number: "; cin >> vett[i]; } media = media + vett[i]; } media = media / 10; */ average(vett[10],media); for( i = 0; i != 10; i++ ){ cout << vett[i]<<" "; } if(media == 0){ cout << "\nATTENTION the average equals to = "<<media<<endl; } else{ cout << "\nThe average is"<<media<<endl; } printf("\n"); cout << "\nDo You want to continue? Y/N"; cin >> loop; } while(loop == 'Y' || loop == 'y'); system("pause"); }

';无法转换';浮动';至';浮动*';对于参数';1'; 我是一个信息技术专业的学生,学习C++,我觉得它很有趣。然而,在实验中,我发现了一些我自己也无法在网上找到的东西。 代码如下: #include <iostream> using namespace std; float average(float array[10], float &average){ int i = 0; for( i = 0; i != 10; i++ ){ cout << "Vett ("<<i<<") = "; cin >> array[i]; while(cin.fail()) { cin.clear(); cin.ignore(); system("Color 5C"); cout << "\nPlease insert a number: "; cin >> array[i]; } average = average + array[i]; } average = average / 10; return array[10]; return average; } main(void){ float vett[10], media; int i; char loop; vett[10] = 0; media = 0; do{ system("cls"); system("Color 00"); cout<<"****************************************"<<endl; cout<<"*** INSER THE DATA TO COMPUTE ***"<<endl; cout<<"****************************************\n"<<endl; /* for( i = 0; i != 10; i++ ){ cout << "Vett ("<<i<<") = "; cin >> vett[i]; while(cin.fail()) { cin.clear(); cin.ignore(); system("Color 5C"); cout << "\nPlease insert a number: "; cin >> vett[i]; } media = media + vett[i]; } media = media / 10; */ average(vett[10],media); for( i = 0; i != 10; i++ ){ cout << vett[i]<<" "; } if(media == 0){ cout << "\nATTENTION the average equals to = "<<media<<endl; } else{ cout << "\nThe average is"<<media<<endl; } printf("\n"); cout << "\nDo You want to continue? Y/N"; cin >> loop; } while(loop == 'Y' || loop == 'y'); system("pause"); },c++,arrays,function,pointers,C++,Arrays,Function,Pointers,如果我这样调用函数 average(&vett[10],media); 它可以工作,但在数组中返回奇怪的值。 如你所见,我在函数中注释了同样的东西,它工作得很好,除非..我把它放在函数中。我假设我对函数调用做了一些错误,有人能帮我理解吗?方括号中的数字有两种含义: 在类似float-vett[10]的声明中它是数组的大小 不在声明中时,如average(&vett[10],media)表示数组的第十一个元素 平均值(&vett[10],中等)正在将第十一个元素的地址传递给函数。函数

如果我这样调用函数

average(&vett[10],media);
它可以工作,但在数组中返回奇怪的值。
如你所见,我在函数中注释了同样的东西,它工作得很好,除非..我把它放在函数中。我假设我对函数调用做了一些错误,有人能帮我理解吗?

方括号中的数字有两种含义:

  • 在类似
    float-vett[10]的声明中它是数组的大小
  • 不在声明中时,如
    average(&vett[10],media)表示数组的第十一个元素
平均值(&vett[10],中等)正在将第十一个元素的地址传递给函数。函数将其解释为数组的开头,这是错误的,在访问数组外部的元素时会导致未定义的行为

因为要传递整个数组,所以应该使用

average(vett,media);

方括号中的数字有两种含义:

  • 在类似
    float-vett[10]的声明中它是数组的大小
  • 不在声明中时,如
    average(&vett[10],media)表示数组的第十一个元素
平均值(&vett[10],中等)正在将第十一个元素的地址传递给函数。函数将其解释为数组的开头,这是错误的,在访问数组外部的元素时会导致未定义的行为

因为要传递整个数组,所以应该使用

average(vett,media);

首先,请注意,
main(void){
不是
main
的有效签名
应该是:

int main(void){
然后:

这是无效的。数组索引从0开始,因此索引10超出范围,因为它需要大小为11的数组

另外,由于
average
函数将浮点数组作为第一个参数,因此需要按如下方式传递:

average(vett,media);
使用:

average(&vett[10],media);

将传递一个指向数组后面的数据的指针,因此显然会得到垃圾值。

首先,请注意
main(void){
不是
main
的有效签名
应该是:

int main(void){
然后:

这是无效的。数组索引从0开始,因此索引10超出范围,因为它需要大小为11的数组

另外,由于
average
函数将浮点数组作为第一个参数,因此需要按如下方式传递:

average(vett,media);
使用:

average(&vett[10],media);
将传递一个指向数组后面的数据的指针,因此显然会得到垃圾值。

    不要在C++中使用<代码> FUNC(无效)<代码>,它是某种被弃用的。使用<代码>函数()(代码)>
  • 如果您有
    float-vett[10];
    ,则
    vett[10]
    无效。您只能使用
    vett[0..9]
  • float average(float数组[10],float&average)

    实际上意味着
    float average(float*array,float&average)

    (第二种形式是声明指针参数的更常见的方式。)
    如果您想用
    vett
    作为参数调用它,只需使用
    average(vett,media)


    当数组的名称用作指针时,会自动转换为指向数组第一个元素的指针。因此这里
    average(vett,media);

    vett
    的意思是
    &vett[0]
      • 不要在C++中使用<代码> FUNC(无效)<代码>,它是某种被弃用的。使用<代码>函数()(代码)>
      • 如果您有
        float-vett[10];
        ,则
        vett[10]
        无效。您只能使用
        vett[0..9]
      • float average(float数组[10],float&average)

        实际上意味着
        float average(float*array,float&average)

        (第二种形式是声明指针参数的更常见的方式。)
        如果您想用
        vett
        作为参数调用它,只需使用
        average(vett,media)


        当数组的名称用作指针时,会自动转换为指向数组第一个元素的指针。因此这里
        average(vett,media);

        vett
        的意思是
        &vett[0]

      我将在帮助中添加更多内容


      你的平均方法在结尾有两个返回语句。最后一个(你想要的那个)将永远无法到达,因为该方法将在第一个返回…

      我将在帮助中添加更多内容


      平均方法的末尾有两个返回语句。最终的返回语句(您需要的返回语句)将永远无法到达,因为该方法将在函数中的第一个返回…

      ,而不是此返回语句

      float average(float array[10], float &average){ 
      
      你必须这样说:

      float average(float *array, float &average){
      

      在函数中而不是此

      float average(float array[10], float &average){ 
      
      你必须这样说:

      float average(float *array, float &average){
      

      vett[10]=0;
      这会访问数组边界之外的内存,不会执行您想要的操作。是否要对数组进行零初始化?在声明中使用
      float vett[10]={0}
      。几天前我刚刚看到了类似的问题。
      返回数组[10];return average;
      使用
      return
      两次,您希望完成什么?
      vett[10]=0;
      这会访问数组边界之外的内存,不会执行您想要的操作。是否要对数组进行零初始化?使用
      float vett[10]={0}
      在声明中。几天前我刚刚看到了类似的问题。
      返回数组[10];return average;
      两次使用
      return
      你希望实现什么?10号表示数组中的第11个元素。不,这是一个很好的理由!在你编辑后删除了它。谢谢,我完全同意。我不太擅长玩“西部最快的枪”…10号表示第11个元素