看一下这个错在那里了


#include<iostream>
#include<iomanip>
using namespace std;
void main()
{
    void prime(int,int);
    int a[10],b[10],i,j;
    cout<<"请输入10个正整数:"<<endl;
    for(i=0;i<10;i++)
        cin>>a[i];
    int max=a[0],min=a[0],t,imax=0,imin=0;
    for(i=0;i<10;i++)
    {
        if(max<a[i])
        {
            t=max;
            max=a[i];
            a[i]=t;
            imax=i;
        }
    }
    cout<<"数组中的最大值为:"<<max<<",其下标为:"<<imax<<endl;
    for(i=0;i<10;i++)
    {
        if(min>a[i])
        {
            t=min;
            min=a[i];
            a[i]=t;
            imin=i;
        }
    }
    cout<<"数组中的最小值为:"<<min<<",其下标为:"<<imin<<endl;
    cout<<"素数为:";
    for(j=i;j>=0;i--)
    {
        prime(a[j],b[j]);
        cout<<setw(4)<<b[j];
    }
    cout<<endl;
    system("pause");
}
void prime(int a[],int b[])
{
    int i;
    for(i=2;i<a[i-2];i++)
    {
        if(a[i-2]%i==0)
            break;
    }
    if(i==a[i-2])
        b[i-2]=a[i-2];
}

img

报错不是很明显吗?
函数声明不能在main中

改一下试试

C++中有函数重载,同名函数不同参数或返回值,都是不同的函数

就是函数声明:void prime(int,int);改为:void prime(int a[],int b[]);最好是放在main函数之前,不要放在里面