错误我不明白如何修复并需要帮助:
第20行和第28行
[错误]无法将参数'1'的'int **'转换为'int *'为'void lotto(int *,int,int,int,int,int)'
在此部分代码中:
#include <stdio.h>
#include <stdlib.h>
int read1();
int even1();
int even2();
int sum1();
int sum2();
void lotto(int*, int, int, int, int, int);
int* table_num(int);
int main()
{
int a=read1();
int* t = table_num(a);
int x=even1();
int y=even2();
int g=sum1();
int h=sum2();
lotto(&t, a, x, y, g, h); /*error here*/
return 0;
}
以下是功能:
void lotto(int* a, int n, int armax, int armin, int atmax, int atmin)
{
int q, w, z=1;
for (int i = 0; i < n-5; ++i)
{
for (int j = i+1; j < n-4 ; ++j)
{
for (int k = j+1; k < n-3 ; ++k)
{
for (int l = k+1; l < n-2 ; ++l)
{
for (int m = l+1; m < n-1 ; ++m)
{
for (int i1 = m+1; i1 < n; ++i1)
{
q=0;
(i%2==0)?q+=1:2;
(j%2==0)?q+=1:2;
(k%2==0)?q+=1:2;
(l%2==0)?q+=1:2;
(m%2==0)?q+=1:2;
(i1%2==0)?q+=1:2;
w=i+j+k+l+m+i1;
if((q<=armax||q>=armin)&&(w>=atmin||w<=atmax))
{
printf("The %d st/nd/rd/th group of 6 numbers is :\t",z);
printf("%d ,%d ,%d ,%d ,%d ,%d \n\n",*(a+i), *(a+j), *(a+k), *(a+l), *(a+m), (a+i1));
z++;
}else
continue;
}
}
}
}
}
}
}
如果你想要回答我的问题需要整个代码,我可以在
中编辑它答案 0 :(得分:1)
将此lotto(&t, a, x, y, g, h);
替换为lotto(t, a, x, y, g, h);
在函数声明中,您已经将输入参数称为指向int 的指针,但是您再次将指针传递给指向int 的指针,这会导致错误。
答案 1 :(得分:1)
问题在于&#39;&amp; t&#39;在你的乐透()中,你要指定&#39; int *&#39;并发送&#39; int **&#39;。尝试编译时不要使用&#39;&amp;&#39;