先用快速排序,再把适合的数找出来
- #include
- #include
- #define MaxN 11
- using namespace std;
- //升序,返回前面较小的(为真)
- int cmp(const int a,const int b)
- {
- if(a!=b)
- return (a
- else
- return 0;
- }
- void sumOfM(int a[],int M)
- {
- int start=0,end=MaxN;
- if(a[start]>M)
- {
- printf("所有都比M小");
- return ;
- }
- while(start
- {
- if(a[start]+a[end]==M)
- {
- printf("%d %d\n",a[start],a[end]);
- start++;
- end--;
- }
- else if(a[start]+a[end]>M)
- {
- end--;
- }
- else
- {
- start++;
- }
- }
- }
- int main()
- {
- int a[MaxN]={2,8,3,6,4,5,5,7,10,11,12};
- sort(a,a+11,cmp);
- /*for(int i=0;i<11;i++)
- printf("%d ",a[i]);*/
- sumOfM(a,10);
- return 0;
- }
2 8
3 7
4 6
5 5
Press any key to continue
阅读(2032) | 评论(0) | 转发(0) |