int main(int argc, char** argv){ //int main(){ int i; if(argc < 3) {printf("wrong input of arguments!\n format: input_file output_file\n"); return 2;} freopen(argv[2], "w", stdout); int n = get_length(argv[1]); //int n = get_length("input.txt"); int **M = (int**)malloc(n*sizeof(int*)); int **D = (int**)malloc(n*sizeof(int*)); int **save = (int**)malloc(n*sizeof(int*)); for(i = 0; i < n; i++){ M[i] = (int*)malloc(n*sizeof(int)); D[i] = (int*)malloc(n*sizeof(int)); save[i] = (int*)malloc(n*sizeof(int)); } int* R = (int*)malloc(n*sizeof(int)); int* S = (int*)malloc(n*sizeof(int)); input_(argv[1], save, n); //input_("input.txt", save, n); int al = check_data(save, n); //output_(1,save,n); if(al == 1) {printf("wrong data input\n"); free_all(save, M, D, R, S, n); return 2;} int H[1]; //get_data_from_within(save, "output.txt"); int cur_pos[1]; int record[1]; record[0] = get_first_record(save, M, D, R, S, n, cur_pos, H); if(record[0] == -1) { return 1; } backtracking(save, M, D, R, S, n, record, H); //printf("Got here!\n"); printf("%d\n", H[0] + V[record[0]].L); make_cycle(record[0]); free_all(save, M, D, R, S, n); return 0; }
int main(void) { List *addr_list = NULL; DLL_Return ExitCode; if(DLL_CreateList(&addr_list) == NULL) { fputs("Fatal memory error\n", stderr); exit(EXIT_FAILURE); } if((ExitCode = DLL_InitializeList(addr_list, sizeof(NameAddr))) != DLL_NORMAL) { (void)(ExitCode == DLL_ZERO_INFO && fputs("Size of address record is zero.\n\n", stderr)); (void)(ExitCode == DLL_NULL_LIST && fputs("addr_list points to a NULL.\n\n", stderr)); exit(EXIT_FAILURE); } printf("%s\n", DLL_Version()); for(;;) { switch(main_menu()) { case 1: enter(addr_list); break; case 2: insert(addr_list); break; case 3: update(addr_list); break; case 4: search(addr_list); break; case 5: display_all(addr_list); break; case 6: get_current_record(addr_list); break; case 7: delete_current_record(addr_list); break; case 8: get_prior_record(addr_list); break; case 9: get_next_record(addr_list); break; case 10: get_first_record(addr_list); break; case 11: get_last_record(addr_list); break; case 12: swap_record(addr_list); break; case 13: save(addr_list); break; case 14: load(addr_list); break; case 15: number_of_records(addr_list); break; case 16: DLL_DestroyList(&addr_list); #if DEBUG if(addr_list != NULL) { fputs("Error: List was not destroyed.\n", stderr); exit(EXIT_FAILURE); } #endif exit(EXIT_SUCCESS); } } return 0; }