输入一个有序数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 void findTwo(int *array, int len, int sum) 5 { 6 int beg = 0; 7 int end = len-1; 8 int curSum; 9 while(beg < end) 10 { 11 curSum = array[beg] + array[end]; 12 if(curSum == sum) 13 { 14 printf("%d + %d = %d ",array[beg],array[end],sum); 15 beg++; 16 end--; 17 } 18 else if(curSum < sum) 19 beg++; 20 else 21 end--; 22 } 23 } 24 25 int main() 26 { 27 int array[6] = {0,2,4,7,11,15}; 28 findTwo(array,6,18); 29 system("pause"); 30 return 0; 31 }