标题:以下代码为何显示这个错误
只看楼主
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
结帖率:90.38%
 问题点数:0 回复次数:2 
以下代码为何显示这个错误
显示这行有错误:
function1(function);

错误信息为:
[Error] cannot convert 'int* (*)()' to 'int*' for argument '1' to 'void function1(int*)'
如何修改?代码如下:
程序代码:
#include<iostream>
int *function(){
    int b[10];
    for(int i=0;i<10;i++){        
        std::cin>>b[i];
    }
    return b;
}
void function1(int *bb){
    for(int i=0;i<10;i++)
        std::cout<<bb[i]<<std::endl;
}
void function2(int *a){
    int sum=0;
    for(int i=0;i<10;i++)
        sum+=*(a+i);
    std::cout<<"平均成绩:"<<sum/10;
}
int main(void){
    using namespace std;
    int *b=function();
    function1(function);
    function2(function);
    return 0;
}
搜索更多相关主题的帖子: function void int 代码 std 
2020-11-29 10:08
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:0 
回复 楼主 hffjhhh
程序代码:
#include<iostream>
using namespace std;    //这句放这里,后面不用加std:;

int *function(){
    int *b=new int[10];    //int b[10],函数结束后这个数组就被销毁了
    for(int i=0;i<10;i++){        
        cin>>b[i];
    }
    return b;
}
void function1(int *bb){
    for(int i=0;i<10;i++)
        cout<<bb[i]<<endl;
}
void function2(int *a){
    float sum=0;    //结果有小数,用float
    for(int i=0;i<10;i++)
        sum+=*(a+i);
    cout<<"平均成绩:"<<sum/10;
}
int main(void){
    int *b=function();
    function1(b); //function是函数,function1的参数得是函数指针,也就是错误所提示的类型转换不了。
    function2(b); //如果只是传递输入的数组,传递b就可以了
    delete b;    //与new对应
    return 0;
}
2020-11-29 10:42
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
程序代码:
#include <iostream>
#include <algorithm>
#include <numeric>
#include <span>
using namespace std;

void function0( span<int> arr )
{
    copy_n( istream_iterator<int>(cin), size(arr), begin(arr) );
}

void function1( const span<int> arr )
{
    copy( begin(arr), end(arr), ostream_iterator<int>(cout,"\n") );
}

int function2( const span<int> arr )
{
    return reduce(begin(arr),end(arr),0)/size(arr);
}

int main(void)
{
    int b[10];
    function0( b );
    function1( b );
    cout << "平均成绩:" << function2(b) << endl;
}
2020-11-29 17:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504055-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.264190 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved