From a889e96494a117a1a278be782b883449dff94771 Mon Sep 17 00:00:00 2001 From: alexey Date: Sun, 23 Nov 2025 23:09:17 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20=D0=BB?= =?UTF-8?q?=D0=B0=D0=B1=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fib | Bin 0 -> 16168 bytes fib.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ hello.c | 7 +++++++ myatoi | Bin 0 -> 16040 bytes myatoi.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++ mystr_idx.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ mystrlen.c | 24 ++++++++++++++++++++++ sumArray.c | 47 +++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 237 insertions(+) create mode 100755 fib create mode 100644 fib.c create mode 100644 hello.c create mode 100755 myatoi create mode 100644 myatoi.c create mode 100644 mystr_idx.c create mode 100644 mystrlen.c create mode 100644 sumArray.c diff --git a/fib b/fib new file mode 100755 index 0000000000000000000000000000000000000000..12b91e955eebb2a8a8e03c90a8b5453b2706b478 GIT binary patch literal 16168 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 literal 0 HcmV?d00001 diff --git a/fib.c b/fib.c new file mode 100644 index 0000000..838bcb8 --- /dev/null +++ b/fib.c @@ -0,0 +1,52 @@ +#include +#include +#include + +int fib(int n) { + if (n < 0) { + return -1; + } + if (n == 0) return 0; + if (n == 1) return 1; + + int a = 0; + int b = 1; + int c; + + for (int i = 2; i <= n; i++) { + if (b > INT_MAX - a) { + return INT_MIN; + } + c = a + b; + a = b; + b = c; + } + return b; +} + +int main(void) { + int n; + printf("Введите целое неотрицательное n: "); + if (scanf("%d", &n) != 1) { + fprintf(stderr, "Ошибка ввода: ожидалось целое число.\n"); + return EXIT_FAILURE; + } + + int result = fib(n); + + if (n < 0) { + fprintf(stderr, "Ошибка: n должно быть неотрицательным.\n"); + return EXIT_FAILURE; + } + + if (result == INT_MIN) { + fprintf(stderr, "Ошибка: переполнение при вычислении fib(%d). " + "Значение фибоначчи слишком велико для типа int.\n", n); + return EXIT_FAILURE; + } + + printf("fib(%d) = %d\n", n, result); + return EXIT_SUCCESS; +} + + diff --git a/hello.c b/hello.c new file mode 100644 index 0000000..d1a5ce7 --- /dev/null +++ b/hello.c @@ -0,0 +1,7 @@ +#include + +int main(){ + printf("Hello World!\n"); + return 0; +} + diff --git a/myatoi b/myatoi new file mode 100755 index 0000000000000000000000000000000000000000..d3e3982f1faa2d2ca632fe7c79c7b675ba77860a GIT binary patch literal 16040 zcmeHOYit}>6~4QU8@F-2n^&7hNhVQ(;uLRe$8i%;Y@`Z6P;3@e za9k-?h&w=@BXy=dXaZQx;xC(t6{JTs^1e@YC*DVXj2s~%@@6YT7!VXjLFa+Iax{?a z#3v~ZMz&l1DM*H*$fJd?p#u~~I}bw{tC40g)-)44yr%pxA@fi~-URU`h-V@7H$lkx z#GK%#gU-W=3fQnH@+gFp*H1hrt|5O$>;nrTeon4J>BFcW`88`vUN2NRY>W1|A-r)Zc8^ua>SGBV7)e6Kn&=+Rokkgm*|3Fc!Og z5y+Tsw6708^Yt6rrDuQo>vvu{etL3f!Z`ld4T*T9v0+0ZT9b&UasxF3n;UBy8v@yM zpk83NbE!S^yuJyNsYARHdo_tTTk(NmK?!37bV><*E$B-5AD+d3bQV3Hf2np>fqpf7 zK2$WVTOaI?X%Q`v?iQK`IqBB2dN`wN$#6Ucn(l$H))P;K6Y)o5qCXQ)={*9yFj0+S zXM5ZB7Og(8(W=!4Hd*zJ4MJ<{+NDKfnOJW;tH&~3yIK-efvO-D#$4 zNk<6V3)i*`J|4LCh-Kmd(DFE17?0nL-;`$3<(9?o#H;@h$tR!u0bE9}_!7ui_&&ko zJ~-dhkJEjC^@8+Ef~KAIEEl$!dK@E|doC~A^fZK}Y0ReQ?+zNqZF+hCq=qJJdK`~d z37R$3(Je(PDr|al+?syw(anIH0XG9~2HXs|8E`Y;X5f>}fI57wLLDjp?FJ###|ygG z7*mJOSDdqgFg9HVld<*{IQmuwp@woF+9xLrC~ME6j8n|XF)4o+PK;4^d`72*j z^M6){|1#Cl6{;)LT~bGzcEa4#SiB8f-|Y$bR(@N$WBXvsgH|0a{}#fQ_w~gP-U_Tk zcy}5TzLi7he2x(OACdl>IuWXGtNAJQ%v;;kGw+wFo(t-g+xjAC;LU*9K!q{U<6F67 zn*R^qihm6?Ee5X0-M>#AZn_MfLd{>*E7g&v_dqCC!)XI=O+W>NDmtJnXg=EopuUiHie+tmDJwR%k55}G>P zbs8CyPnm5`sn^HV`~_+cdxbKjj#m0VMr#)i&Bcriz44GbvTsUuH{pfz$1LQ}nr(uV z4^5fpWv1!D4TpVv=39JEEQfGFoI=7)-?L{gos)?lE#C@{S!(`bQHLbwFTnWujH!?p zp%}Uaw9)eQ9mlXCZJ&%(>->l z=fFuuw;#T4@_RVrn8xEXLW@IT9dN4`-MqD~|S z!+JWtZgt)2YNbh88@)?3)LY7idP`eVSG&p5qhMJSMX9N)4@bJ;?Hadc(^-C7?1j#R z{q3eL#8B3yzY)vyB+>_~??QLa^0KY?UJ~C&CH`(0j{*J=@EO2g0=5G_HDwsT0jzq* zFkT15cdl4Gk9G>rfZwyca&E;j&s;z1agD*lz_Y)HEbTAE8uBl`Wf&NPsPeZ~E&04} z-oc6?v2EGb^&8j7W{?j*Gl(hh<9BoDj(vRL43|{uJV7!+j93EWx5AKlJ>_y zz5Z>(I1gyqy)U6zmN{_r!w2d34jBu+YqP)4lS=pCX28vWn*lciZU)>8xEXLW;AX(h z!2fjyc)cL655#8#EVw2SOQi|c0!4TsCCkx;CN3qJ*C8$^nV(^nk<9B6@p%Rd+y8mn zNTYm$7XR^@!Q=SQ0)^N9jgwtI(1HGE(kjF}!X<=@2^okcinRWapLyi77&!5B8?Q;c zmxvwIG3$>}U>tXW{9tjWEZqMM!#p2QN>_N@C(o~g`0zSX%A99-?38kl>>rTKaZ~f3 zIPm&$XUC2BAPJ?F(3FJWb)-96T0X0++YyVz!zrb%A+Rw}TeG>EYV2GBF&}fp+lJGG z`Spl}*1B=BCv zk7v^=1U`df`_}h~3`eE^B5R#4`{Vd675{AKbwakYK%7{`Elgvnc3zbJ_Xy{8yeMh& z#YttFkF`I-$0L?l-xIb@L1h7)R~xM#mcK!O?z+^o*EBAIL@CpvRqK@crNSSyRI*YF zdcRm|<(aJyfPR73C-^?Y`X z;wb3-Fdo(g+0(=?f*$j8fX0>lF$YYe=WSx=MySvm>%n++I$40?>m>HiDRD@?ZG zdC+rTHnsQ@=ofh5u1N8)?JDY7u;bqDj9wQ=!xHvzB(CYexwLPt^dqZ7XSM&DvkVd~Vg1=*bK+szM{}C(wW6`i47V>0h6M;p=4FixI zu$wypK$y8LK#OM6T38#)(E~~8SjQ*(mM77q2d({ zKy*gmVWk(RsfTqe6NHo>#DptIF*Bewq+4u3<+)zE82b87lCV zxB8!Lza0Ccuf5>^zxQA+!ttM={u#M{p07FM-wS-4n=zl~Z;S=7Vd4EI%;$O3SHOl{ zGN0#zjQIc4UYzlFgAwOi%;)(PBi|l5e)ePR2R_c-SmyZ~V~{#`#!qT-1S)t${5ybb=kvVOUu$;BadH6MFUyrcMjgkm z1Wk)Ve5XJ5WiRuoe{#1>%*W>>dttsEt+8)&3{r!~D6mg~4d;~{58uD>`^B-_=wb|J c9awI0N2VxqMO6v-xKWD#`%R|TvX9{Z8?{;ui~s-t literal 0 HcmV?d00001 diff --git a/myatoi.c b/myatoi.c new file mode 100644 index 0000000..a1bf429 --- /dev/null +++ b/myatoi.c @@ -0,0 +1,51 @@ +#include +#include +#include + +int myatoi(char *instr) { + if (instr == NULL) { + return 0; + } + + while (isspace((unsigned char)*instr)) { + instr++; + } + + int sign = 1; + if (*instr == '+') { + instr++; + } else if (*instr == '-') { + sign = -1; + instr++; + } + + long result = 0; + while (*instr >= '0' && *instr <= '9') { + int digit = *instr - '0'; + + if (sign > 0) { + if (result > (LONG_MAX - digit) / 10) { + return INT_MAX; + } + } else { + if (-result < (LONG_MIN + digit) / 10) { + return INT_MIN; + } + } + + result = result * 10 + digit; + instr++; + } + + return (int)(result * sign); +} + +int main() { +printf("myatoi(\"1\") = %d\n", myatoi("1")); + printf("myatoi(\"42\") = %d\n", myatoi("42")); + printf("myatoi(\"-105\") = %d\n", myatoi("-105")); + printf("myatoi(\" -12abc34\") = %d\n", myatoi(" -12abc34")); + printf("myatoi(\"9999999999999\") = %d (overflow)\n", myatoi("9999999999999")); + + return 0; +} diff --git a/mystr_idx.c b/mystr_idx.c new file mode 100644 index 0000000..0a37379 --- /dev/null +++ b/mystr_idx.c @@ -0,0 +1,56 @@ +#include + +int mystr_idx(char *str, char *substr) { + if (str == NULL || substr == NULL) { + return -1; + } + + if (*substr == '\0'){ + return 0; + } + + int i=0; + while (str[i] != '\0') { + int j = 0; + int temp_i = i; + + while (substr[j] != '\0' && str[temp_i] != '\0' && str[temp_i] == substr[j]) { + temp_i++; + j++; + } + + if (substr[j] == '\0') { + return i; + } + + i++; + + } + +return -1; + +} + +void test_mystr_idx() { + printf("mystr_idx(\"helloworld\", \"world\") = %d (ожидается: 5)\n", + mystr_idx("helloworld", "world")); + printf("mystr_idx(\"helloworld\", \"helloworld\") = %d (ожидается: 0)\n", + mystr_idx("helloworld", "helloworld")); + printf("mystr_idx(\"helloworld\", \"foo\") = %d (ожидается: -1)\n", + mystr_idx("helloworld", "foo")); + printf("mystr_idx(\"helloworld\", \"hello\") = %d (ожидается: 0)\n", + mystr_idx("helloworld", "hello")); + printf("mystr_idx(\"helloworld\", \"low\") = %d (ожидается: 3)\n", + mystr_idx("helloworld", "low")); + printf("mystr_idx(\"abcabc\", \"abc\") = %d (ожидается: 0)\n", + mystr_idx("abcabc", "abc")); + printf("mystr_idx(\"\", \"test\") = %d (ожидается: -1)\n", + mystr_idx("", "test")); + printf("mystr_idx(\"test\", \"\") = %d (ожидается: 0)\n", + mystr_idx("test", "")); +} + +int main() { + test_mystr_idx(); + return 0; +} diff --git a/mystrlen.c b/mystrlen.c new file mode 100644 index 0000000..5605677 --- /dev/null +++ b/mystrlen.c @@ -0,0 +1,24 @@ +#include +#include + +int mystrlen(const char *s) { + return strlen(s); +} + +int main() { + char str[200]; + + printf("Введите строку: "); + + fgets(str, sizeof(str), stdin); + + size_t len = strlen(str); + if (len > 0 && str[len-1] == '\n') { + str[len-1] = '\0'; + } + + int length = mystrlen(str); + printf("Длина строки: %d\n", length); + + return 0; +} diff --git a/sumArray.c b/sumArray.c new file mode 100644 index 0000000..f35c004 --- /dev/null +++ b/sumArray.c @@ -0,0 +1,47 @@ +#include + +int sumArray(int arr[], int size) { + int sum = 0; + for (int i = 0; i < size; i++) { + sum += arr[i]; + } + return sum; +} + +int main() { + + + int myArray[100]; + int i; + int count = 0; + + printf("Введите числа, для остановки введите число 0:\n"); + + for(i = 0; i < 100; i++) { + + scanf("%d", &myArray[i]); + if(myArray[i] == 0){ + break; + } + + count++; + + } + + printf("Введённые числа:\n"); + for (i =0; i < count; i++) { + printf("%d ", myArray[i]); + } + printf("\n"); + if (count < 100 && myArray[count] == 0) { + printf("Ввод остановлен по команде пользователя (0)\n"); + } + printf("Всего введено чисел: %d\n", count); + + int total = sumArray(myArray, count); + + printf("Сумма элементов массива: %d\n", total); + + return 0; +} +