int main()
{
long int i,t,n,q[500],d[500],s[500],res[500]={0},j,h;
scanf("%ld",&t);
while(t--)
{
scanf("%ld %ld",&n,&h);
for(i=0;i<n;i++)
scanf("%ld %ld",&d[i],&s[i]);
for(i=0;i<h;i++)
scanf("%ld",&q[i]);
for(i=0;i<h;i++)
{
for(j=0;j<n;j++)
{
res[j]=d[j]+q[i]*s[j];
}
j=cal(res,n,q[i],s);
printf("%ld\n",j);
}
}
return 0;
}
long int cal(int res[],int n,int q,int s[])
{
long int i,max=0,p,pos=0;
for(i=0;i<n;i++)
{
if (max==res[i])
{
pos=add(res,s,pos,i,q);
max=res[pos];
}
if (res[i]>max)
{
max=res[i];
pos=i;
}
}
return pos;
}
每当我拿着变量int
,它的正常工作,但如果我的变量声明为long int
,我在函数调用在收到警告消息“可疑指针转换” - 在该行:可疑指针转换长整型
(j=cal(res,n,q[i],s));
能否请你解释一下原因吗?
你可以发布cal()函数原型 – 2013-03-10 04:06:03
那么,如果我们知道'cal'看起来像什么会有帮助。对不起,太阳耀斑会干扰我们的水晶球。 – 2013-03-10 04:06:45
@NikBougalis好的:) – Ganesh 2013-03-10 04:21:57