给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。C语言
时间: 2023-08-14 16:00:13 浏览: 95
两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个
您好!对于这个问题,您可以使用两层循环来遍历数组中的每对数字,找到它们的和是否等于目标值。以下是一个使用 C 语言的示例代码:
```c
#include <stdio.h>
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
int* result = (int*)malloc(2 * sizeof(int));
*returnSize = 2;
for(int i = 0; i < numsSize - 1; i++){
for(int j = i + 1; j < numsSize; j++){
if(nums[i] + nums[j] == target){
result[0] = i;
result[1] = j;
return result;
}
}
}
return NULL; // 如果没有找到符合条件的两个数,则返回空指针
}
int main(){
int nums[] = {2, 7, 11, 15};
int target = 9;
int returnSize;
int* result = twoSum(nums, sizeof(nums)/sizeof(nums[0]), target, &returnSize);
if(result != NULL){
printf("The indices are: [%d, %d]\n", result[0], result[1]);
free(result);
}
return 0;
}
```
上述代码中,`twoSum` 函数接受一个整数数组 `nums`、数组大小 `numsSize`、目标值 `target` 和一个用于存储结果数组大小的指针 `returnSize`。函数中使用两层循环来遍历数组中的每对数字,如果找到了和为目标值的两个数,就将它们的索引存储在 `result` 数组中并返回。在 `main` 函数中,我们调用 `twoSum` 函数,并打印输出找到的结果。
希望能帮到你!如果还有其他问题,请随时提问。
阅读全文