- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的程序有问题。这是一个问题:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=120
我有:
#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;
}
我的程序有错误:
code.c:在函数“main”中:code.c:116:5: 警告:从不兼容的指针类型传递“sortowani”的参数 1code.c:29:5:注意:预期为“struct punkty ”,但参数类型为“struct punkty ()[300]”code.c:128:17:警告:从不兼容的指针类型传递“duplikat”的参数 1code.c:81:5:注意:预期为“struct linie ”,但参数的类型为“struct linie ()[300]”code.c:133:26:错误:“/”标记之前的预期表达式code.c:172:12:错误:“/”标记之前的预期表达式
最佳答案
int sortowanie(punkty *proste, int roz)
需要一个 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, ...
在 sortowani_2
中,您不会返回
任何内容,您需要从此函数返回一个整数。
但是编译器已经告诉你这些事情了。
关于C 程序,激光线,警告 : passing argument 1 of 'sortowanie' from incompatible pointer type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15489095/
我正在尝试使用 Sfml 编写 2D 游戏。对于那个游戏,我需要一个 Lightengine 和一些代码,这些代码可以为我提供玩家可见的世界区域。由于这两个问题非常吻合(实际上是相同的),我想同时解决
我是一名优秀的程序员,十分优秀!