|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这是做的某道题,请教!!!
int* twoSum(int* nums, int numsSize, int target) {
int i,j;
static int arr[2] = {0};
for(i=0;i<numsSize-1;i++)
{
for(j=i+1;j<numsSize;j++)
{
if(*(nums+i)+*(nums+j) == target)
{
arr[0] = i;
arr[1] = 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;
}
|
|