c++ - 类型 'int&' 的引用初始化无效,传递参数 1 时出错

标签 c++ arrays matrix

我已经编写了一个 C++ 问题的解决方案,该问题应显示一个有序数组,其中包含来自矩阵的值。我已经做到了,但它一直显示两个错误,我不知道如何解决它们。

错误是:

第 84 行|错误:从“int*”类型的表达式对“int&”类型的引用进行无效初始化|

第 57 行|错误:传递“void Inserare(int&, int*, int)”的参数 1|

#include <iostream>
#include <math.h>

using namespace std;

void CitireMatrice(int& n,int mat[100][100])
{
    int i,j,m;
    cout<<"Da n ";
    cin>>n;
    m=n;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            cout<<"Matricea["<<i<<"]["<<j<<"]=";
            cin>>mat[i][j];
        }
}

void Tiparire(int n,int X[])
{   int i;
    if(n!=0)
    {
        for(i=1;i<=n;i++)
            cout<<X[i]<<" ";
        cout<<endl;
    }
    else
        cout<<"Sirul este vid";
}

int Prim(int n)
{
    int div=2;
    while(div<=sqrt(n) && n%div!=0)
    {
        if(div == 2)
            div = 3;
        else
            div = div + 2;
    }
    return div;
}

int SuperPrim(int n)
{
    while(n!=0)
    {
        if(Prim(n)==0)
            return 0;
        n=n/10;
    }
    return 1;

}

void Inserare(int& n,int X[],int v)
{   int i;
    int p=1; //prima pozitie
    while(X[p]>v && p<=n)
        p++;
    for(i=n;i>=p;i++)
        X[i+1]=X[i];
    X[p]=v;
    n++;
}

int Apartine(int X[],int n,int v)
{   int i;
    int gasit=0; //initializat cu 0 deoarece nu a gasit nimic inca
    for(i=1;i<=n;i++)
        if(X[i]==v)
            gasit=1;
    return gasit;
}

void Construire(int n,int mat[100][100],int X[],int& k)
{   int i,j;
    k=0;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            if((i>j && i+j<n+1) || (i<j && i+j>n+1)) //daca apartine triunghiului drept SAU strang
               if(SuperPrim(mat[i][j])==1 && Apartine(X,k,mat[i][j])==0)
                    Inserare(X,k,mat[i][j]);
}



int main()
{
    int m,n,mat[100][100],X[100],k;
    CitireMatrice(n,mat);
    Construire(n,mat,X,k);
    Tiparire(n,X);

    return 0;
}

最佳答案

Inserare(X,k,mat[i][j]);

X为表地址,根据声明 void Inserare(int& n,int X[],int v) 你应该通过引用。也许您想在通话中切换 X 和 k?

关于c++ - 类型 'int&' 的引用初始化无效,传递参数 1 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27234659/

相关文章:

采用指针的 C++ 显式构造函数

c - C语言中如何计算矩阵一行中元素的个数

c - C 中的稀疏矩阵存储

matrix - core.matrix 中矩阵和向量的元素乘法

c++ - 物体到相机的距离,使用opencv

c++ - 从双端队列 C++ 分配新的自定义对象

c++ - 如何在 Windows 的 wchar_t 和 GCC/Linux 之间转换(不一定以编程方式)?

c++ - 如何使用 malloc 从一维数组转换为二维数组

C++,当从列表中获取值时,我填充其中的数组没有返回任何内容

r - 每对观测值的马氏距离