Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 1000
- /*
- *
- */
- int llenarArreglo(int setsum[MAX],int* n){
- int i;
- scanf("%d",&(*n));
- if ((*n)==0)return 1;
- else{
- for(i=0;i<(*n);i++)scanf("%d",&setsum[i]);
- return 0;
- }
- }
- int hallaSuma(int arr[MAX],int nelem,int targ){
- int i,j,mi,mj,menor,temp;
- for(i=0;i<nelem-1;i++){
- for(j=i+1;j<nelem;j++){
- if(arr[i]+arr[j]>targ)temp=arr[i]+arr[j]-targ;
- else temp=targ-(arr[i]+arr[j]);
- if(!(i==0 && j==1)){
- if (temp<menor){
- menor=temp;
- mi=i;
- mj=j;
- }
- }
- else {
- menor=temp;
- mi=i;
- mj=j;
- }
- }
- }
- return (arr[mi]+arr[mj]);
- }
- int main(int argc, char** argv)
- {
- int setnum[MAX];
- int n,m,i,target,caso,clsum;
- caso=1;
- while(1){
- if (llenarArreglo(setnum,&n))break;
- scanf("%d",&m);
- printf("Case %d:\n",caso);
- caso++;
- for(i=1;i<=m;i++){
- scanf("%d",&target);
- clsum=hallaSuma(setnum,n,target);
- printf("Closest sum to %d is %d.\n",target,clsum);
- }
- }
- return (EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement