还是返回问题,不过加了一个指针,好奇怪
这是做的某道题,请教!!!int* twoSum(int* nums, int numsSize, int target) {
int i,j;
static int arr = {0};
for(i=0;i<numsSize-1;i++)
{
for(j=i+1;j<numsSize;j++)
{
if(*(nums+i)+*(nums+j) == target)
{
arr = i;
arr = j;
return arr;
}
}
}
return 0;
}
以上是正解
我在自己的编译器环境下编写了一个完整的代码,发现能过,然后我把函数部分放到测试里面就过不了了。
我现在还不知道函数里面为什么有那个指针int *twoSum;
而且int* twoSum和int *twoSum、int * twoSum是同一个意思吧。
#include<stdio.h>
#include<stdlib.h>
int* twoSum(int* nums, int numsSize, int target) {
int i,j;
for(i=0;i<numsSize-1;i++)
{
for(j=i+1;j<numsSize;j++)
{
if(*(nums+i)+*(nums+j) == target)
{
printf("%d %d\n", i, j);
return 0;
}
}
}
return 0;
}
int main()
{
int numsSize, target;
scanf("%d%d", &numsSize, &target);
int *nums = (int *)malloc(numsSize*sizeof(int));
int i;
for(i=0;i<numsSize;i++)
{
scanf("%d", nums+i);
}
twoSum(nums, numsSize, target);
return 0;
}
*的位置无所谓,看习惯
这里表示返回值是一个int类型指针 BngThea 发表于 2019-1-4 08:54
*的位置无所谓,看习惯
这里表示返回值是一个int类型指针
这个题为什么返回一个指针就可以有答案了 lemon3 发表于 2019-1-4 09:17
这个题为什么返回一个指针就可以有答案了
没详细看你给的代码,但是正确答案中返回的是一个数组名,需要一个指针,你的代码没有返回值,或者说返回的是一个0而已 BngThea 发表于 2019-1-4 09:22
没详细看你给的代码,但是正确答案中返回的是一个数组名,需要一个指针,你的代码没有返回值,或者说返回 ...
大佬一定刷过LeetCode吧,这就是其中比较简单的一个,但是我不知道它的详细代码,也就不明白它怎么就返回一个数组了
页:
[1]