Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.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
C程序,激光线,警告:通过'的参数1;索托瓦尼';来自不兼容的指针类型_C_Pointers_Compilation - Fatal编程技术网

C程序,激光线,警告:通过'的参数1;索托瓦尼';来自不兼容的指针类型

C程序,激光线,警告:通过'的参数1;索托瓦尼';来自不兼容的指针类型,c,pointers,compilation,C,Pointers,Compilation,我的程序有问题。 这是一个问题: 我有: #include <stdio.h> #include <stdlib.h> typedef struct{ int x,y; } punkty; typedef struct{ punkty linia[300]; int i; }linie; int sprawdzenie(punkty a, punkty b, punkty c) { int n1, n2;

我的程序有问题。 这是一个问题:

我有:

#include <stdio.h>
#include <stdlib.h>


typedef struct{

    int x,y;

} punkty;

typedef struct{

    punkty linia[300];
    int i;

}linie;

int sprawdzenie(punkty a, punkty b, punkty c)
{
        int n1, n2;

        if ((b.y-a.y)*(c.x-a.x)==(c.y-a.y)*(b.x-a.x))
            return 1;
        else
            return 0;

}

int sortowanie(punkty *proste, int roz)
{
  int i,j;

    for(i=0; i<roz;i++)
    {
        for(j=0; j<roz-1;j++)
        {
            if(proste[j].x>proste[j+1].x ||
                (proste[j].x == proste[j+1].x
                && proste[j].y>proste[j+1].y)
               )
            {
                punkty tmp;

                 tmp = proste[j];
                 proste[j] = proste[j+1];
                 proste[j+1] = tmp;
            }
        }


    }


}
int sortowanie_2(punkty *proste, int roz)
{
    int i,j;

    for(i=0; i<roz;i++)
    {
        for(j=0; j<roz-1;j++)
        {
            if(proste[j].x>proste[j+1].x ||
                (proste[j].x == proste[j+1].x
                && proste[j].y>proste[j+1].y)
               )
            {
                punkty tmp;

                 tmp = proste[j];
                 proste[j] = proste[j+1];
                 proste[j+1] = tmp;
            }
        }


    }

}

int duplikat(linie *proste, int roz, punkty a, punkty b, punkty c)
{
    int ax,k,j,i;


    for(ax=0;ax<roz;ax++)
        for(i=0;i<proste[ax].i-2;i++)
            for(j=i; j<proste[ax].i-1;j++)
                for(k=j;k<proste[ax].i;k++)

                    if(proste[ax].linia[i].x == a.x && proste[ax].linia[i].y == a.y &&
                       proste[ax].linia[j].x == b.x && proste[ax].linia[j].y == b.y &&
                       proste[ax].linia[k].x == c.x && proste[ax].linia[k].y == c.y
                       )
                    return 1;
    return 0;
}


int main()
{
    punkty tab[300];

    linie proste[300];

    int n=0,i,j,k,p=0,parametr=0;


/*wczytanie punktow*/

    while(scanf("%d %d", &tab[n].x, &tab[n].y) == 2  && (tab[n].x!=0 || tab[n].y!=0))
    {
        n++;
    }

    sortowanie(&tab,n);
/*wyszukiwanie lini */


    for(i=0; i<n-2;i++)
    {
        for(j=i+1; j<n-1; j++)
        {
            parametr=1;

            for(k=j+1; k<n; k++)
            {
                if(sprawdzenie(tab[i], tab[j], tab[k]) == 1 && duplikat(&proste, p, tab[i],tab[j],tab[k])==0)
                {

                    if(parametr==1)
                    {
                         //printf("x");
                         proste[p].linia[proste[p].i] = tab[i];
                         proste[p].i++;
                         proste[p].linia[proste[p].i] = tab[j];
                         proste[p].i++;
                         proste[p].linia[proste[p].i] = tab[k];
                         proste[p].i++;
                         parametr=0;
                    }
                    else
                    {
                        proste[p].linia[proste[p].i] = tab[k];
                        proste[p].i++;
                    }

                }
            }
            if(parametr==0)
            {
                p++;
            }
        }
    }

    if(p==0)
    {
        printf("No lines were found");
    }
    else
    {
        printf("The following lines were found:\n");
    }

    for(i=0; i<p; i++)
    {

        for(j=0; j<proste[i].i; j++)
        {
            printf("( %d, %d ) ", proste[i].linia[j].x,proste[i].linia[j].y);
           // printf("%d %d\n", tab[j].x, tab[j].y);
        }
        printf("\n");
    }



    getchar();
    return 0;
}
#包括
#包括
类型定义结构{
int x,y;
}朋克;
类型定义结构{
蓬蒂·利尼亚[300];
int i;
}李奈;
内特斯普拉德泽尼(朋克提a、朋克提b、朋克提c)
{
int n1,n2;
如果((b.y-a.y)*(c.x-a.x)=(c.y-a.y)*(b.x-a.x))
返回1;
其他的
返回0;
}
内索托瓦尼(蓬蒂*普罗斯特,内罗兹)
{
int i,j;
对于(i=0;i霜[j+1].y)
)
{
朋克提tmp;
tmp=proste[j];
proste[j]=proste[j+1];
proste[j+1]=tmp;
}
}
}
}
内部索托瓦尼2(蓬蒂*普罗斯特,内部罗兹)
{
int i,j;
对于(i=0;i霜[j+1].y)
)
{
朋克提tmp;
tmp=proste[j];
proste[j]=proste[j+1];
proste[j+1]=tmp;
}
}
}
}
内部杜普利卡特(里尼*普罗斯特、内部罗兹、朋克提a、朋克提b、朋克提c)
{
int ax,k,j,i;
对于(ax=0;ax
需要一个punkty指针,但您正在传递一个
punkty**
,即指向
punkty
指针的指针:

punkty tab[300]; // tab is a (pointer to) array
sortowanie(&tab,n); // should be sortowanie(tab, n)
这里也有同样的问题:

linie proste[300];
duplikat(&proste, p, tab[i],tab[j],tab[k]) // should be duplikat(proste, ...
sortowanie_2
中,您没有返回任何内容,您需要从该函数返回一个整数

但是编译器已经告诉你了

linie proste[300];
duplikat(&proste, p, tab[i],tab[j],tab[k]) // should be duplikat(proste, ...