用c语言给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标
时间: 2023-08-23 13:06:43 浏览: 127
好的,你可以参考下面的 C 语言代码实现:
```c
#include <stdio.h>
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
int i, j;
for (i = 0; i < numsSize - 1; i++) {
for (j = i + 1; j < numsSize; j++) {
if (nums[i] + nums[j] == target) {
int* result = (int*) malloc(2 * sizeof(int));
result[0] = i;
result[1] = j;
*returnSize = 2;
return result;
}
}
}
*returnSize = 0;
return NULL;
}
int main() {
int nums[] = {2, 7, 11, 15};
int target = 9;
int numsSize = sizeof(nums) / sizeof(nums[0]);
int returnSize;
int* result = twoSum(nums, numsSize, target, &returnSize);
if (result == NULL) {
printf("No solution found.\n");
} else {
printf("The indices are %d and %d.\n", result[0], result[1]);
free(result);
}
return 0;
}
```
其中,函数 `twoSum` 接受一个整数数组 `nums`、数组长度 `numsSize`、目标值 `target` 和一个用于返回结果数组长度的指针 `returnSize`,并返回一个数组,包含和为目标值 `target` 的两个元素的下标。如果没有解决方案,则返回 `NULL` 并将 `returnSize` 设置为 0。主函数演示了如何使用 `twoSum` 函数。
阅读全文