Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
Arrays c中一元数的类型参数无效_Arrays_C_Loops_Pointers - Fatal编程技术网

Arrays c中一元数的类型参数无效

Arrays c中一元数的类型参数无效,arrays,c,loops,pointers,Arrays,C,Loops,Pointers,我正在写一个函数: int findSumInArray(int*arr,int size,int*sum,int**num1,int**num2) sum:用户选择一个数字(sum),我们检查是否有num1+num2==sum(同一数组中的两个数字)。 如果我们有两个这样的数字,那么我们想知道这些数字的i和j,还有arr[i]和arr[j]的值 我不知道我的功能出了什么问题!? 我得到:无效的一元类型参数 int findSumInArray(int *arr, int size, int *

我正在写一个函数:

int findSumInArray(int*arr,int size,int*sum,int**num1,int**num2)

sum:用户选择一个数字(sum),我们检查是否有num1+num2==sum(同一数组中的两个数字)。 如果我们有两个这样的数字,那么我们想知道这些数字的i和j,还有arr[i]和arr[j]的值 我不知道我的功能出了什么问题!? 我得到:无效的一元类型参数

int findSumInArray(int *arr, int size, int *sum, int **num1, int **num2)
{
int i=0,j=0;
  if(scanf("%d", sum)!=1)
  return -1;
     for(i=0;i<size;i++)
        {
            for(j=i+1;j<size;j++)
                {
                if(*(arr+i)+*(arr+j)==*sum)
                    {
                    **num1=*(arr+i);
                    **num2=*(arr+j);
                    ***num1=i;
                    ***num1=j;
                    return 1;
                    }
                }
        }
  return 0;
 }
int findSumInArray(int*arr,int size,int*sum,int**num1,int**num2)
{
int i=0,j=0;
如果(scanf(“%d”,总和)!=1)
返回-1;

对于(i=0;i)您收到的错误消息是什么?是否为“c中一元的无效类型参数”?是的..在我问题的标题中,假设
num1
声明为
int**num1
,您认为
***num1
是什么?您想用
***num1=i;
做什么。您想返回数组中找到的两个数字以及它们的索引。因此您需要有4个指针作为参数。但是返回两个index和值是不需要的,因为索引已经足够了:调用方显然拥有数组,可以从数组中获取de值;int arr[size];我按照u的说法修复了函数,并将索引更新为num1和num2,现在……我必须打印它们,但我不知道printf(“arr[%d]=%d+arr[%d]=%d==sum\n”,num1,*(arr+*num1)的确切方式,num2,*(arr+*num2));?对吗?