题目:在数组中找到 2 个数之和等于给定值的数字,结果返回 2 个数字在数组中的下标。
代码及注释
//判断数组内任意两个数的和是否等于给定的目标值
#include<stdio.h>
//判断数组长度函数 len()
int len(int *a){
int i = 0;
while (1){
//while(1)有两种意思,分别是(1)这是一个死循环不再往下执行代码(2)循环以下{}中的代码,此处为后者
if (a[i]) //如果a[i]为真,或者说a[i]成立,则执行后面的语句
i += 1;
else
break;
}
return i;
}
//判断数组当中任意两数之和是否等于给定的目标值target
void TwoSum(int a[],int target){
for(int i=0;i<len(a);i++){
for(int j=i+1; j<len(a);j++){
if(a[i] + a[j] == target){
printf("[%d, %d]", i, j);
}
}
}
}
int main(){
int a[] = {2, 7, 11, 15, 3, 6, 3};
int target = 9;
TwoSum(a, target);
return 0;
}