我遇到无法解决的错误:
在main中->分配具有数组类型的表达式
在函数'twoSum'中:
错误:请求成员'length'的形式不是结构或联合体
for(int i = 0; i错误:“]”标记之前的预期表达式 return arrayR [] {i,j};
在函数“ main”中:
TwoSum.c:27:13:错误:分配给具有数组类型的表达式
结果= twoSum(array,5,3);
{{1}}
非常感谢您的帮助
答案 0 :(得分:0)
下面的代码将起作用并产生预期的结果。
正如其他评论所述,您应该学习C / C ++中的指针和内存管理的概念。在其他语言(Java,C#和其他语言)中找不到类似的东西,因此对您来说这将是一个新概念。
void twoSum(int *nums, int size, int numsSize, int target, int * res)
{
for (int i = 0; i < size; i++)
{
for (int j = i + 1; j < size; j++)
{
if (nums[j] == target - nums[i])
{
res[0] = i;
res[1] = j;
return;
}
}
}
}
int main()
{
int array[5] = { 1, 2, 3, 4, 5 };
int results[2];
twoSum(array, sizeof(array)/sizeof(array[0]), 5, 3, results);
return 0;
}