在一个由小到大排列的n个数的数列中,在其中插入一个数,输出前后两个数组,并将挤出的最大数返回给主函数输出

时间:2020-12-04 19:31:36
我编了一个这个,请各位高手帮我看一下,因为总是有一个错误:“error C2664: 'fun' : cannot convert parameter 1 from 'int' to 'int []'
        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast”

我编的源程序如下:

#include<iostream.h>

int fun(int a[5],int x)
{
int i,j,k,t,b[6];  

for(i=0;i<6;i++)                         //将数组a[i]和x的数赋值到数组b[i]中
{
if(i=5) b[i]=x;
else b[i]=a[i];
}

for(i=0;i<6;i++)                           //将输入x后的数列重新排序
{
k=i;
for(j=i+1;j<6;j++) {if(a[k]>a[j]) k=j;}
if(i!=k)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}

for(i=0;i<6;i++)                             //输出
{
if(i=5) {cout<<"被挤出的最大数为:"<<b[i]<<endl;}
cout<<b[i];
}
//cout<<"被挤出的最大数为:"<<b[i]<<endl;
}


int main()
{
int fun(int a[5],int x);    //函数声明

int i,x;
int a[5]={2,4,6,8,10};
cout<<"请输入一个整数:";
cin>>x;
fun(a[5],x);
cout<<endl;

return 0;
}

8 个解决方案

#1


fun(a,x);//函数这样调用

#2


楼上正解

#3


“error C2664: 'fun' : cannot convert parameter 1 from 'int' to 'int []'

lz,你需要自己看怎么出错的,这样效率很高!

#4


恩 谢谢 不过它现在提醒我定义的函数fun要返回一个值:“error C4716: 'fun' : must return a value

#5


3楼 谢谢  我的技术不太好 看着错误找了半天也没找到~~所以想请教请教

#6


我写了个return 0,没有错误了
但是函数输出结果不正确啊

#7


1楼正解 既然是c++ 就用c++的风格和库吧 
#include <iostream>
#include <cstring> //如果用VS2010 只要用到string 一定得加这句 新手很容易犯的错误
using namespace std;

#include <iostream.h>和C差不多 还是c风格的说

#8


恩 这个我知道  可是现在虽然没有错误  但得出来的结果却不对

#1


fun(a,x);//函数这样调用

#2


楼上正解

#3


“error C2664: 'fun' : cannot convert parameter 1 from 'int' to 'int []'

lz,你需要自己看怎么出错的,这样效率很高!

#4


恩 谢谢 不过它现在提醒我定义的函数fun要返回一个值:“error C4716: 'fun' : must return a value

#5


3楼 谢谢  我的技术不太好 看着错误找了半天也没找到~~所以想请教请教

#6


我写了个return 0,没有错误了
但是函数输出结果不正确啊

#7


1楼正解 既然是c++ 就用c++的风格和库吧 
#include <iostream>
#include <cstring> //如果用VS2010 只要用到string 一定得加这句 新手很容易犯的错误
using namespace std;

#include <iostream.h>和C差不多 还是c风格的说

#8


恩 这个我知道  可是现在虽然没有错误  但得出来的结果却不对