Thursday 18 January 2018

C Program to find pair whose sum is closest to zero.

#include<stdio.h>
#include<stdlib.h>

#define MAX 100
/*Assuming that array is sorted in ascending order*/
int main(){

int sum,i,j,n=10,p,q;
int *arr=(int *)malloc(MAX*sizeof(int));
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}

int tmp;
j=n-1;i=0;
sum=99999;
while(j>i){

tmp=arr[i]+arr[j];
if(abs(sum)>abs(tmp))
{
sum=arr[i]+arr[j];
p=i;q=j;

}
else if(tmp<0)
{
i++;
}
else j--;
}

printf("\nThe pair which has sum closest to zero: %d and %d",arr[p],arr[q]);
return 0;
}

No comments:

Post a Comment