int main(int argc, char **argv) { init_g(); increase(); init(1252); sumg(6,7); printf("%d\n", factorial(atoi(argv[1]))); }
int main(int argc, char** argv) { // главная часть, обработка параметров входа и выполнение init(); char* data_file1=argv[1]; char* data_file2=argv[2]; char* strl = argv[3]; FILE* f=fopen(data_file,"r"); FILE* f2=fopen(data_file2,"r"); if(!f) { printf("Wrong file\n"); return 1; } char tmp[51]; char mnoj_name; int elem; int num_mnoj=0; while(fgets(tmp,51,f)!=NULL) { mnoj_name=tmp[0]; elem=getElem(tmp); int ind=getInd(mnoj_name); if(ind!=-1) { bool is_new=true; int l; for(l=0;l<num_elems[ind];l++) { if(elems[ind][l]==elem) { is_new=false; } } if(is_new) { num_elems[ind]++; elems[ind]=(int *) realloc(elems[ind],num_elems[ind]*sizeof(int)); elems[ind][num_elems[ind]-1]=elem; } } else { num_mnoj++; mnoj=(char*) realloc(mnoj,num_mnoj*sizeof(char)); mnoj[num_mnoj-1]=mnoj_name; elems=(int**) realloc(elems,num_mnoj*sizeof(int*)); elems[num_mnoj-1]=(int*) calloc(1,sizeof(int)); elems[num_mnoj-1][0]=elem; num_elems=(int*) realloc(num_elems,num_mnoj*sizeof(int)); num_elems[num_mnoj-1]=1; } } puts("Data file is read"); int j=1; // номер анализируемого элемента puts(sum_mem); while(strlen(sum_mem)!=1) { printf("%s-%d\n",sum_mem,j); if(ifChar(sum_mem[j-2]) && ifChar(sum_mem[j]) && isOper(sum_mem[j-1])) { char newMn=gnm(); // выбирает неиспользованную букву. num_mnoj++; mnoj=(char*) realloc(mnoj,num_mnoj*sizeof(char)); mnoj[num_mnoj-1]=newMn; // мы нашли множество и создаём для него место elems=(int**) realloc(elems,num_mnoj*sizeof(int*)); elems[num_mnoj-1]=(int*) calloc(0,sizeof(int)); num_elems=(int*) realloc(num_elems,num_mnoj*sizeof(int)); num_elems[num_mnoj-1]=0; if(sum_mem[j-1]=='*') { peresech(sum_mem[j-2],sum_mem[j],newMn); sum_mem[j-2]=newMn; movePointer(sum_mem,j+1,2); } else if(sum_mem[j-1]=='+') { sumg(sum_mem[j-2],sum_mem[j],newMn); sum_mem[j-2]=newMn; movePointer(sum_mem,j+1,2); } else if(sum_mem[j-1]=='-') { minus(sum_mem[j-2],sum_mem[j],newMn); sum_mem[j-2]=newMn; movePointer(sum_mem,j+1,2); } j=2; } } puts(sum_mem); int last_ind=getInd(sum_mem[0]); int l; for(l=0;l<num_elems[last_ind];l++) { printf("%d\n",elems[last_ind][l]); } return (EXIT_SUCCESS); }