|
|
вернуться в форумWhy compilation error? Послано AK 12 июл 2007 02:04 Here is my code. Why error? Я его тестировал не на одной машине и на куче примеров - всё отлично считает. В чём собственно проблема? #include<conio.h> #include<iostream.h> #include<stdio.h> int division(int a, int b) { int counter=0; while(a>0) { a=a-b; counter++;} return counter-1; } int voskl(char str[100]) // Fynkcia podscheta woskl znakow { int counter=0; for (int i=0; i<100; i++) { if (str[i]=='!') counter++; } return counter; } void main() { clrscr(); int tmp;// schetchik dla cikla esli a delitsa na str_len bez ostatka int otnim=0;//w cikle dla ywelicjhenia otnimaemogo int rez=0;//rezyltat nahogdenia fakrotiala int a;// imenno chislo, kotoroe faktorialim int str_len;//kol-wo "!" char str[100]; //cout<<"Wwedite stroky w sootwetstwii s prawilami:\n "; fflush(stdin); fgets(str,100,stdin); ///cout<<str; a=str[0]; a=a-48;// wot ono chislo w chistom wide //cout<<a<<"\n"; str_len=voskl(str); //cout<<str_len; if (a%str_len==0) { tmp=a/str_len; rez=a; for (int i=1; i<tmp; i++) { rez=rez*(a-i*str_len); } rez=rez*str_len; } else { tmp=division(a,str_len); rez=a; for (int i=1; i<tmp; i++) { rez=rez*(a-i*str_len); } rez=rez*(a%str_len); } cout<<"\n"<<rez; getch (); } Re: Why compilation error? Re: Why compilation error? Послано AK 12 июл 2007 02:46 Благодарю, не обратил внимания. Но проблемы этого не решает. Т.е. эррор на стадии компиляции присутствует. На трёх машинах (включая эмулятор из под линукса на одной из них) никаких вопросов при компиляции не возникало. Использовался при написании Turbo C++ version 3.0 Re: Why compilation error? Попытайся убрать clrscr() и getch(); Я скомпилировал код и PC принёс 'clrscr' : undeclared identifier. Когда я убрал clrscr() и getch() мой комп скомпилировал этот код. Если и это не поможет,перед отправлением кода щёлкни: reply To my E-Mail address. P.S.алгоритм неверный.Попробуй след.тесты: 9!!! ans:162 8!!!! ans:32 4!! ans:8 10!!! ans:280 Удачи! Edited by author 12.07.2007 02:59 Edited by author 12.07.2007 03:00 Edited by author 12.07.2007 03:01 Edited by author 12.07.2007 03:01 Edited by author 12.07.2007 03:08 Re: Why compilation error? а еще не мешало бы дописать using namespace std; т.к. ты используешь cin/cout Re: Why compilation error? Послано AK 12 июл 2007 11:50 Благодарю за консультацию. Есть ещё вопрос. Вот в этой версии кода на ваши тесты программа даёт верные ответы. #include<conio.h> #include<iostream.h> #include<stdio.h> #include<stdlib.h> int division(int a, int b) { int counter=0; while(a>0) { a=a-b; counter++;} return counter-1; } int voskl(char str[100]) // Fynkcia podscheta woskl znakow { int counter=0; for (int i=0; i<100; i++) { if (str[i]=='!') counter++; } return counter-1; } void main() { clrscr(); int tmp;// schetchik dla cikla esli a delitsa na str_len bez ostatka //int otnim=0;//w cikle dla ywelicjhenia otnimaemogo int rez=0;//rezyltat nahogdenia fakrotiala int a;// imenno chislo, kotoroe faktorialim int str_len;//kol-wo "!" char str[100]; //cout<<"Wwedite stroky w sootwetstwii s prawilami:\n "; fflush(stdin); fgets(str,100,stdin); ///cout<<str; a=str[0]; a=a-48;// wot ono chislo w chistom wide cout<<a<<"\n"; str_len=voskl(str); cout<<str_len; if (str[1]=='0') a=10; cout<<"\n it is "<<str[1]<<" "<<a; if (a==str_len) { rez=a*a; cout<<"\n"<<rez; getch (); exit(1); } if (a<str_len) { rez=a; cout<<"\n"<<a; getch (); exit(1); } if (a%str_len==0) { tmp=a/str_len; rez=a; for (int i=1; i<tmp; i++) { rez=rez*(a-i*str_len); } // rez=rez*str_len; } else { tmp=division(a,str_len); rez=a; for (int i=1; i<tmp; i++) { rez=rez*(a-i*str_len); } rez=rez*(a%str_len); } cout<<"\n"<<rez; getch (); } Но ошибка на первом тесте высвечивается анализатором вашим. Я догадываюсь, почему так, и хотел бы уточнить один момент. Как ведёт себя факториал, если восклицательных знаков больше числа? Скажем, 2 !!!? тогда 2 !!!=6? А если первое число равно нулю? 0 !! ? Edited by author 12.07.2007 11:58 Edited by author 12.07.2007 11:59 Edited by author 12.07.2007 12:06 Edited by author 12.07.2007 14:14 Re: Why compilation error? Первое число не может равняться 0,т.к. в условии задачи говорится n>=1. На тест 2!!! ответ:2 5!!!!!! отв:5 2!!!! отв:2 Re: Why compilation error? I send my source but and i test it with Dev-c++ 4.9.9.2 but when i refresh i see compilation error.Why?Please tell me because I can't submit any problems! |
|
|