Δημοσιεύτηκε: 07 Απρ 2012, 19:11
από simosx
stamatiou έγραψε:Πήγα να κάνω μια υλοποίηση με έναν άλλο αλγόριθμο αλλά για κάποιο λόγο δεν μου εμφανίζει ούτε την έξοδο :/
Κώδικας: Επιλογή όλων

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

#define MAX_VALUE 2000000001L

int main(void) {
register long int counter, main_num, num_to_add,num_to_stop, i1, i2;
long int *array, smallest[3], size;
FILE *input, *output;

if(!(input = fopen("operators.in","r"))) {
printf("Failed to open operators.in\n");
exit(EXIT_FAILURE);
}
if(!(output = fopen("operators.out","w"))) {
printf("Failed to open operators.out\n");
exit(EXIT_FAILURE);
}

smallest[0] = MAX_VALUE;

fscanf(input,"%ld",&size);

if(!(array = (long int *) malloc(size * sizeof(long int)))) {
printf("Failed to allocate memory for input\n");
exit(EXIT_FAILURE);
}

array[0] = 0;
counter = 1;
fscanf(input, "%ld", &array[0]);
printf("Inputting:\t%ld\n",array[0]);

do {
fscanf(input, "%ld", &array[counter]);
printf("Inputing:\t%ld\n",array[counter]);
printf("Inputing:\t%ld\n",array[counter + 1]);
i1 = labs(array[0] + array[counter]);
i2 = labs(array[0] + array[counter + 1]);
counter += 2;
}while(counter - 2 < size && i1 > i2);


array = (long int *) realloc((long int *) array, ((size = counter) * sizeof(long int)));

for(main_num = 0; main_num < size; main_num++) {
for(num_to_add = main_num + 1; num_to_add < size && num_to_add <= num_to_stop; num_to_add++) {
printf("Processing:\t%ld %ld\n",array[counter],array[counter + 1]);
if((labs((array[main_num] + array[num_to_add]))) < (labs(array[main_num] + array[num_to_add + 1]))) {
smallest[0] = labs(array[main_num] + array[num_to_add]);
smallest[1] = array[main_num];
smallest[2] = array[num_to_add];
num_to_stop = num_to_add;
}
}
}

fprintf(output,"/---------------\nMinsum:\t%ld %ld",smallest[1],smallest[2]);

free(array);

exit(EXIT_SUCCESS);
}


Προτείνω για το δικό σου θέμα, μιας και μαθαίνεις προγραμματισμό, να ξεκινήσεις ένα νέο νήμα για συζήτηση με το πρόγραμμα που φτιάχνεις.