From 7c2a71ae73aa9b57c1f8788a19874cfed8feda2a Mon Sep 17 00:00:00 2001 From: Xamora Date: Tue, 3 Dec 2024 06:25:10 +0100 Subject: [PATCH] finish 03, add -lm, remove a.out --- .gitignore | 1 + 01/a.out | Bin 19968 -> 0 bytes 02/a.out | Bin 19808 -> 0 bytes 03/_.h | 25 ++++++++++++++ 03/main.txt | 6 ++++ 03/mylib.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++ 03/part1.c | 32 ++++++++++++++++++ 03/part1.sh | 1 + 03/part2.c | 40 ++++++++++++++++++++++ 03/part2.sh | 1 + 03/test.txt | 1 + 03/test2.txt | 1 + template/part1.sh | 2 +- template/part2.sh | 2 +- 14 files changed, 194 insertions(+), 2 deletions(-) create mode 100644 .gitignore delete mode 100755 01/a.out delete mode 100755 02/a.out create mode 100644 03/_.h create mode 100644 03/main.txt create mode 100644 03/mylib.c create mode 100644 03/part1.c create mode 100755 03/part1.sh create mode 100644 03/part2.c create mode 100755 03/part2.sh create mode 100644 03/test.txt create mode 100644 03/test2.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cba7efc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +a.out diff --git a/01/a.out b/01/a.out deleted file mode 100755 index c83d1580cca1b4eb791ee0e896c84b0fd2e69eea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19968 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 K(PRNwSoS~E+O~!O diff --git a/02/a.out b/02/a.out deleted file mode 100755 index db78779c1ba050639e35e7b77ee180f966323587..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19808 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 +#include +#include +#include +#include +#include +#include +#include +#include + +#define MAX(X, Y) ((X) > (Y) ? (X) : (Y)) +#define MIN(X, Y) ((X) < (Y) ? (X) : (Y)) +#define ABS(X) ((X) >= 0 ? (X) : -(X)) + +char** str_split(char* a_str, const char a_delim); + +int str_index(char *str, char c); + +int number_of_element(char *str, char c); + +long gmc(long a, long b); +long lmc(long a, long b); +long lmcs(int array[], int n); diff --git a/03/main.txt b/03/main.txt new file mode 100644 index 0000000..a4c4ac1 --- /dev/null +++ b/03/main.txt @@ -0,0 +1,6 @@ +-select()&how()''from()}what()mul(667,142);*when()*/%%+ &mul(139,116),,)mul(665,813)$>-+from()where(),from()mul(589,293))mul(832,177)mul(701,929)~([mul(300,986)from()mul(238,716)/~*~'what()when():}mul(437,789)mul(662,564)*)^,;%<}#'mul(567,346)don't()from()-who(),^/mul(939,542)mul(944,786)^}select()(mul(508,210)}mul(873,534)}select()where()-,*+)#@mul(925,280)where()*who()why()who()?%:mul(858,972)+mul(113,350)' *who()+from(641,444))&]*don't();from()+,@[mul(522,403)mul(627,14)why()where()+/#^!what()^mul(678,234) mul(79,303)from()from()^'who()@;/~[mul(752,220);-don't()((select()select(){mul(454,158) *]#mul(387,262)how()where()when()[from(118,182)mul(662,176)%]')from()where()mul(259,178)--)~>$who()do()where()&&]~@{)%]mul(566,269);select()%}%+ mul(21,147),#&)*'why()#+don't()-,:{/%what()$*mul(883,511)select(264,142)select()how()]/?&&mul(205,770)select()%from()what()&$select()who())mul(538,114)/mul(9,272)from()?(why(727,269)when()don't()>+/ when(),)mul(750,773)*['do()]mul(316,235)+{{mul(744,197)*#who()*}how()how()why())mul(932,794)*where())+<-/ mul(371,760)why() who()(select()@mul(595,45)who()%how()'when()>how(){why()[mul(123,779)!@where()(mul(988,620)~'*,?/#when()mul(612,810)mul(720,939)]/(,^&how()%^]mul(391,308);&@-mul(525,708)+what(352,33)when()from()why()} ~mul(79,405)@*where()! mul(865,388) ?[$what()mul(747,941)#[}from() ((mul(418,822)mul(90,638)select()(#;;<[+@mul(657,611)]}@)mul(30,874)@mul(525,145))who() where()+:~+]mul(176,137)what()] mul(381,84)):how()mul(315,467)%($'(*]:%mul(792,258)]>'mul(534+[#>&)+why()mul(881,357):^*?what()who(514,882)where())}-mul(88,883[;^-#mul(208,713)}?;]!%mul(651,918);{),:what()*mul(528,154)):@*]; &%[mul(542,543)mul(480,848)why()mul(843,903)[select())-*@ ;who()mul(77,706)<[;}mul(303,968));why()mul(916,126)&&%/&mul(462,652)[!~()what()from()from()select()how()mul(730,810/,when(286,584)don't()^select()mul(609,219)(-~&who():mul(135,454)from()-%~]#mul(909,564)when()&why(){/~+?who()[do()mul(852,307)-[?;)how()do()[[*->{!#^mul(678,864)>when()%>!']$mul(16,905),!mul(111,596)why()$mul(2,397)/-@}~;where(942,895)do()who()where()<}when()?mul(846,421),?(where()why(),how()(&mul(643,890)%~*[;% $what()don't()^$&(##mul(112,802)where()^ &(&&{&do()+(!(mul(732,198)[}!'>^%mul(919,810)mul(342,316))}what()&~:~$mul(822,157)-,{select()who()mul(907,36>where()/$!^<&$where()mul(10,661)-who()mul(496,782)@%%?'{[;(mul(110,115)~mul(447,69)*[what()[{]>-'@mul(197,810)select()what()who()mul(492,647)where()*[{ [~&what()$mul(24%<>mul(234,703) +)$~where()when()@when(),mul(939,238){from()(#!>-mul(44,294)what()where(244,294)*when()&&what()who()what()mul(173,998)+mul(915,924)mul(126{'*mul(849,404)#select()mul(480,290)('%what()}),%'mul(525,37) /;mul(371,488{<$,what()mul(652,384)+/+']:^;;what()mul(463,163)[$mul(692,303)@(&'+'how()mul(574,785)select()?why():>when(579,794)>mul(385,563)>-%where():(^)mul(349,597)select()- '(why())mul(325,80)mul(83]}[[^*how() why() don't()mul(807,644)-who()$mul(716,166);select()mul(626,79)/don't()!( why()mul(496,577)~how()':!what()'@,mul(44what()where()how()?who()mul(115,627)^&'from()% mul(28,698)+why()mul(7,895)'mul(150#$[{]:mul(370,234)}why()# &{)mul(902,182))}*+^where():why()mul(263,783)who()]#;(-!why()$mul(635,217from()from();%+:$;^)mul(505,91)}''%${mul(467,336)}]]mul(323,115)^^why()why()%?>$>!mul(314,474)when()!'},%*select(),when()do()]':mul(748,29)why()select()'&^}~&from(),mul(55,11)[*/&who()&&mul(478,127)]-when()mul(64,831)what()/;[[mul(822,263)mul(833,138)>,$;how(843,918)>#mul(180,9)&what(136,915):;mul(883,785)mul(544,853)%mul(547,842)?select()^~:((mul(475,655)'^+[mul(70,929)when()from()+from()}[why()?'why()mul(88,259)from()[:who()<mul(140,477)>&$where(602,252)-;;% {mul/@ ${select() !mul(167,943)what()[)mul(753,926)}$+#$mul(167,13)mul(456,116)mul(109,352)>]select()/' when()!mul(820,444),, (*mul(227,538)@:%{mul(168,817)from()/where():$ />who(795,19)-mul(799,466)~;(;from()-$)){mul(356,431)!from()*$what()mul(175,543)*mul(340,188)when():where()mul(613,955)from()~do()where(){mul(733,695) @mul(96,566)how()^what()how()'$what()]mul(303,135)]//who()(who()+mul){;^,mul(515,424) ]/%select()]mul(283,274)'>;*~from(){{from()?mul(869,316) +';[why()mul(719,314)-mul(38,357):]how()*/how()select()mul(78,942);$+#from()mul(265,330)from()from()& +-@-,mul(148,251)where()})why()/mul(159,418)%<},-?!^!~mul(632,32),don't()what()what()]>when()-#when()]mul(518,898)mul(64,74)mul(624,359){-*}mul(435,903)how()select()%where(36,5)(mul(750,885)*where()mul(15,112)?:%select()@<[mul(913,903));[from()#&*mul(511,123)+%when()&^'#mul(495,296,;what()mul(56,831) #[>/*(>+^mul(806,137)))/@*@}mul(395,547)'select(){what()why()*where():!don't()~!mul(112,799)(%from()*who(172,318)mul,)!&mul(590,625)$mul(516,115)how()[*!>mul(914,404)~when()](what()*mul(400,936)how()*^^{<{%?mul(999,987)!})#]mul(959,690)@{'}:{when()when()mul(570,284);~mul(97,397)@;#mul(132,335)?~#mul(42,819))mul(655,746){#^%who(101,15)&#!mul(291,803),#+?&mul(816,961);}mul(122,643)?~*#what()@;what()mul(711,201)why()(~]?&mul(529,206)from()where()%@from() /]mul(444,963)@who()from()/:[(-mul(346,877))/when()&mul(177,443)$![%;@don't()][mul(677,276)*mul(353,913)select()from()*mul(695,847)/mul(20,815()who())})mul(438,161)select():why()who()*]^]mul(321,822)*^from()/where()-?{mul(718,349)mul(355,582)<;mul(830,962)mul(312,508))from()where()who())&why()>]do()mul(224,71)@(how()why()select(688,447)mul(89,792)#mul(154,938)select()do() who()}$!!&mul(172,622))$what(){>mul(623,570)&%-where():&*}mul(31,554)<(#where()*from():{@!mul(987,776))*'/mul+?(mul(701,61)~];}><{&mul(563,85):^^how()(mul(868,860)~,what()@{do()'why()mul(819,142)<$how()&mul(299,411)?mul(954,291){'-where()>mul(985 ~^why()?mul(131,20)*/ >from()',++>mul(415,335)?[-mul(798,190)^who()>;[mul(611,479)mul(658,622~,who()/&#:{who()}?mul(291,148)+where()}@who(51,417)what()why())why()?:{*[!;mul(627,512):[;<':*mulwhy()((@)$$ ':don't()what(511,960)mul(159,248); mul(588,419)-#%(mul(331,93}from()>mul(560,438)}from()mul(729,489)}*<@what()mul(456,993)]+-('@mul(164,410)@%+mul(283,493)<*;/ :when()((mul(266,486)[when(),?+mul(249,165)}don't()+why()where()'~mul(472,202),select(554,790)mul(387,509)~&!mul(514,914)who()from()when()mul(673,224)@where()/++)+{ +mul(480,948)$/when()don't()&,mul(584,391) @+mul(180,685)who()select()'-!!$~mul+?mul(249,664)why()select() mul(627,626)'$who()how()~mul%)@+;[{mul(237,229)who()%<{-{*]+;mul(809,56)#~}'mul(691,801)(:}['{<-/mul(990,19)select()where()what()':who(194,310)!^{mul(972,914)];&>mul(823,879)mul(531,912)how(640,856)^who()%!@mul(988,624)why() ^~[mul(593,75)what()*}]#-mul(238,652)$why(){#:$,)mul(351,278)@select() @[*/'mul(41,175)mul(723,126)&+how()/when()%mul(495,494what(25,590)why():]*$(mul(760,407) mul(208,295)*when()&'}do()@ }&when()/~who()what()^mul(613,494) why()%~@who()mul(159,575)why()where(390,372)%% ~from()-mul(570,730))mul(634,554)who()&how()mul(909,159)[[)+mul(481,13) mul(310,211)what()}why()from()how()< $why()mul(235,144):${how()^?;!]mul(601,971)mul(3,148)>))mul(351,281)from()&why(){!from()mul(398,4)why()when()#>mul(779,170)+)when()@>]/]mul(374,400)mul(725,109)from() *-<[+'mul(771,683)where()how()%+(,(mul(968,53)['who()@>[@(select():mul(650,309)#*,mul(676/#how()@select()^}%>from())mul(428,451)%}where()({%{>what()how()mul(840,189)how()mul(734,158)[:#what()&&(when() -mul(302,951){-what()>%[+mul(86,676)!mul(574,410)/*who()mul(709,782)mul:how()[)%-&from()mul(903,410)&~^!why()select()>when()how()mul(501,677)&,where()$)>'mul(572,739){mul(26,438)(*where()^'&mul(437,403)where()what()mul@&[<*)[:#%%mul(523,163)mul(401,39%&/]>mul(712,673)mul(593,248) mul(910,410)+?mul(60,141)-who()?~'mul(798,372)mul(469,939)(select()^[!-'mul(243,488)&/+-/^what()>^>mul(618,943 ('mul(252,224)*!$mul(619,792)from()&^mul(218,278){,mul(416,669)+*$]#mul(800,119)%]%^#$;*>{mul(482,893)'&&?how()mul(89,677)&)#mul(483,457)why()[select()(!+;[mul(134,789)]~how() #%mul(837,402)~,?>*mul(128,824)[/#@don't()what()$[&mul(181,943)[mul(678,31)~$:who()when()@ *what()mul(141,981)>!!~,/mul(169,72)where()why(),+*mul(347,11)~what(),when(): when()]mul(283,646)?'mul(834,247)[mul(744,766)()*mul(979,782)$;mul(864,806)?from()mul(836,818){%mul(662,438)mul(174,824)'who()+select()mul(614,265)^select()mul(141,687)+**)[~$[/-mul(61,197)from() when()mul(498,859)who()@>why()how()how()mul(494when()!^^don't()when()mul(29,653){why()mul(41,526)#select()from()mul(715,903) +@where(957,13)how(451,967):?(/mul(884,339)&: -mul(895,988)%:from()mul(267,780)do()+!mul(747,812)[*;:&-##[,mul(877,201)@[from()(<{)<$mul(696,261)where()/??&-$:where()mul(451,383)#how()}$>,mul(966,386)~-#from()!when()/what()select()mul(893,103)/ ; /;-select(467,60)why(139,346)?mul(650,959)why(884,941)+why()mul(353,814)from()who(){-*#who()mul(400,173)mul(661^$[[:*?mul(731,905)&(mul(317,300)!^< [/-how(){when()mul(476,578)who()from()&}-)mul(628,306)who():~',+@mul(633,755)$?^&mul(45,740)mul(495,369)how()when()!select()mul(809,627){when() what()mul(625,205)%/select()$(where():why()^when()don't()>/:?mul(825,853):when()&~,(~select()]~mul(660,614)]+mul(968,860)-do()%select()~ mul(843,731!$}how()mul(354,619)@select()mul(354,560)when()}*mul(994,176)~]#how(549,822)[mul(887,251)[select()&*%who(17,670)who()%)&mul(360,653)-/''>from(803,726)mulwhere()?what()&mul(446,573):select()?how():&mul(660,62);[;)/?!@ when()mul(131,738)~;)mul(222,467)how()@},who()>why()mul(907,236)-$]^mul(389,882){mul(481,917)how()--!{when()mul(826,862)!what(776,585)%*from()/^mul(258,741)&+@[,&from()^?>mul(615,874))#where()who()^from()'(what()mul]#mul(239,843)where()where()!&mul(35,752)#}}how()))mul(103,32)'>]mul(491,16)%$'mul(914,334)~select()/'!@mul(256,451) ~%[$why()?mul(330,802)where(){(?mul(373,28[#:&/&'%%mul(227,364))mul]:mul(650,371)@@?[$from()mul(358,277)mul(102,94)%)';mul(431,297)>!when()*mul(83,650)#;/'@<)!/mul(444,600)+(*mul(342,980)$;mul(887,991)@mul(942,266)mul(554,806)[{why()who(), )select(){mul(560,307)^)mul(90,988)*:[mul(362}&don't()]where()what()!?!$mul(646,5)[+&(;;/^mul(70?'mul(768,397)]where()#(%don't()-how()~select()^how()@mul(969,59)<[how(288,620)who()>what()?from(925,90)mul(644,250)@+)@how()from()?from()mul(370,958)}mul(856,740)don't()](<#->!who()*mul(127,512)where(155,111)&$**>?mul(568,551)(when();$} (why()#mul(696,66)]~{/]mul(54,72)}mul(723,615)#mul(746,486)['*mul(890,144)!mul(139,363)mul(203,759),<;mul(954,65)when()*mul(122,219)^what()who(31,222)how()when()how()mul(235,569)what(934,341)from(545,730)/who()*^mul(344,502)where()~-] $>$mul(473,194)mul(514,408)do()when()['mul(592,732)mul(668,655){what()]>+?mul(897,859)~$select()]mulwhere()mul(116,140)@+what()&#mul(843,710)/$%~; @mul(329,45)~??@mul(751,862)?>mul(465,182)mul(879,670)select()}<)how()select(342,147)^why()-why(77,328)mul(839,63){from()mul(609,495)who())??#@%&}mul(791,585)mul(89,505)who() ~who() $do()$;][mul(208,816)$;mul(162,345)?)what()*#^$]what()mul(239,645)from(),{@mul(225,844)select()'why(609,236)}?[mul(364,169)(select()!mul(273,586) +from()where()'%'where()<{?}mul(758,234)from(443,726)select()when()}'mul(884,68)**/[&{;~mul(818,66)why()where()>,from()-?;{mul(282,741)?['>mul(560,385)why()]@&$]<>]from()do()}/*^!}{mul(142,84)$from()who()how()mul:mul(225,76),how() (#how()mul(685,905)when()!!^['(^mul(744,487)-mul(837,928)from()<$((mul(776,854)mul(668,869)!who()mul(123,137)%-mul(76,346)-where()select()^}mul(912,946)'$#!mul(930,449)(,where(),$-how(){do()&what(),]when(){mul(665,336)$don't()<%why()]-}why()how()mul(705,882)select()+%-&#mul(162,959)select(),/*^^why()-+?mul(665,535)~?what()(select()how()from()how()^what()mul(968,599){,~##how()#-,(mul(620,224)^{+ mul(864,140)where()mul(169,847):why()?what()+don't()mul(251,569)/#%>mul(956,70);:mul(200,261)>!@when()):<^+:mul(899,267)who()#,&from()what()when(473,423)'from()mul(521,38)(why()/why()>^/]?mul(881,241)#'*(/mul(991,447)*mul(481,364)!what()$+^%mul{-what()}:+;mul(260,175),}$+what()mul(476,265)who()how();%#mul(444,418)>)select()from()why()'mul(189,265)@[({}mul(736,742)when()],mul(689,493)+ ^#[:don't()where()select()#mul(524,647)where()'%#!}(mul(466,834)))%where()~>!]mul(841,130)%select()>how()why();mul(511,221)when()-mul(295,571)<*};why()?[~mul(749,813) ~*(why()^why() mul(74,836)%:%(/>/%)mul(148,705)&mul(973,710)]!}:]from()!who()-mul(751,18)/#[from()>/'what()/mul(451,419)how()^where(),&>'mul(21,960){+-{'mul(305,674)%]&*- {-],mul(241,623)!]who()how();%don't()mul(987,838)+mul(495,346)>#*[what()@[select()don't()??:^select(),)mul(83,151);;]:-'#from()when()who()mul(641,58)<$,where()!why()+mul(698,90)from()mul(289,417)^from()who()<+>mul(280,434)!mul(510,875)select()from()]mul(63,720)from()*{who(140,649)- how() -]mul(310,719)[;why()mul(199,500)>who()mul(150,452)why()^mul(573,483)mul(194,434)select()$]$++mul(793,362)}where():*when()&:who())mul(448,657)who()don't()?-:-[!'mul(557,248)! @/why()[<)when(245,258)%mul(874,939)what()^from())mul(55,802)^%,&?select(431,807)}from(331,380)~where()mul(714,95)$?,mul(574,272)mul(895,71)){how(),/]mul(600,135)mul(875,178)]}$^ ?what()?{]mul(55,317)(^)(mul(474,170)when())]!what()mul(872,189)'from()where()( [$<)mul(948,648)-^[&#mul(308,675)[what()]from():(mul(547,600)how()who()~[what()~+who()mul(107,328)~([:+mul(982,96)>:mul(100,141)*'&(~where()[mul(528,201)>what())/~^:;mul(10,602) diff --git a/03/mylib.c b/03/mylib.c new file mode 100644 index 0000000..a8a4205 --- /dev/null +++ b/03/mylib.c @@ -0,0 +1,84 @@ +#include "_.h" + +// NOT MY CODE +// https://stackoverflow.com/questions/9210528/split-string-with-delimiters-in-c +char** str_split(char* str, const char a_delim) +{ + char *a_str = strdup(str); + char** result = 0; + size_t count = 0; + char* tmp = a_str; + char* last_comma = 0; + char delim[2]; + delim[0] = a_delim; + delim[1] = 0; + + while (*tmp) + { + if (a_delim == *tmp) + { + count++; + last_comma = tmp; + } + tmp++; + } + + count += last_comma < (a_str + strlen(a_str) - 1); + + count++; + + result = malloc(sizeof(char*) * count); + + if (result) + { + size_t idx = 0; + char* token = strtok(a_str, delim); + + while (token) + { + //assert(idx < count); + *(result + idx++) = strdup(token); + token = strtok(0, delim); + } + //assert(idx == count - 1); + *(result + idx) = 0; + } + + free(a_str); + return result; +} + +int str_index(char *str, char c) { + + int i = 0; + while (str[i]) + if (str[i++] == c) + return i; + + return -1; +} + +int number_of_element(char *str, char c) { + int nbr = 0; + for (int i = 0; str[i] != '\0'; i++) + if (str[i] == c) + nbr++; + return nbr; +} + +long gmc(long a, long b) { + if (b == 0) + return a; + return gmc(b, a % b); +} + +long lmc(long a, long b) { + return (a / gmc(a, b)) * b; +} + +long lmcs(int array[], int n) { + long result = array[0]; + for (int i = 1; i < n; i++) + result = lmc(result, array[i]); + return result; +} diff --git a/03/part1.c b/03/part1.c new file mode 100644 index 0000000..b9412bc --- /dev/null +++ b/03/part1.c @@ -0,0 +1,32 @@ +#include "_.h" +#include + +int main(int argc, char **argv) { + + if (argc != 2) + return 1; + + char *input = argv[1]; + + int mul = 0; + for (int i = 0; input[i] != '\0'; i++) { + if (strncmp(&input[i], "mul(", 4) == 0) { + int nbr1 = atoi(&input[i + 4]); + int len_nbr1 = floor(log10(abs(nbr1))) + 1; + if (input[i + 4 + len_nbr1] != ',') + continue; + + int nbr2 = atoi(&input[i + 4 + len_nbr1 + 1]); + int len_nbr2 = floor(log10(abs(nbr2))) + 1; + + if (input[i + 4 + len_nbr1 + 1 + len_nbr2] != ')') + continue; + + mul += nbr1 * nbr2; + printf("find: %s\n", &input[i]); + } + } + + printf("find: %d\n", mul); + return 0; +} diff --git a/03/part1.sh b/03/part1.sh new file mode 100755 index 0000000..aa498cb --- /dev/null +++ b/03/part1.sh @@ -0,0 +1 @@ +gcc -lm -g -Wall -Wextra -include_.h part1.c mylib.c diff --git a/03/part2.c b/03/part2.c new file mode 100644 index 0000000..fb8f5fd --- /dev/null +++ b/03/part2.c @@ -0,0 +1,40 @@ +#include "_.h" +#include + +int main(int argc, char **argv) { + + if (argc != 2) + return 1; + + char *input = argv[1]; + + int mul = 0; + int make = 1; + for (int i = 0; input[i] != '\0'; i++) { + if (strncmp(&input[i], "do()", 4) == 0) + make = 1; + if (strncmp(&input[i], "don't()", 7) == 0) + make = 0; + + if (make == 0) + continue; + if (strncmp(&input[i], "mul(", 4) == 0) { + int nbr1 = atoi(&input[i + 4]); + int len_nbr1 = floor(log10(abs(nbr1))) + 1; + if (input[i + 4 + len_nbr1] != ',') + continue; + + int nbr2 = atoi(&input[i + 4 + len_nbr1 + 1]); + int len_nbr2 = floor(log10(abs(nbr2))) + 1; + + if (input[i + 4 + len_nbr1 + 1 + len_nbr2] != ')') + continue; + + mul += nbr1 * nbr2; + printf("find: %s\n", &input[i]); + } + } + + printf("find: %d\n", mul); + return 0; +} diff --git a/03/part2.sh b/03/part2.sh new file mode 100755 index 0000000..db92d5f --- /dev/null +++ b/03/part2.sh @@ -0,0 +1 @@ +gcc -lm -g -Wall -Wextra -include_.h part2.c mylib.c diff --git a/03/test.txt b/03/test.txt new file mode 100644 index 0000000..f274bda --- /dev/null +++ b/03/test.txt @@ -0,0 +1 @@ +xmul(2,4)%&mul[3,7]!@^do_not_mul(5,5)+mul(32,64]then(mul(11,8)mul(8,5)) diff --git a/03/test2.txt b/03/test2.txt new file mode 100644 index 0000000..30032cb --- /dev/null +++ b/03/test2.txt @@ -0,0 +1 @@ +xmul(2,4)&mul[3,7]!^don't()_mul(5,5)+mul(32,64](mul(11,8)undo()?mul(8,5)) diff --git a/template/part1.sh b/template/part1.sh index dad1d2d..aa498cb 100644 --- a/template/part1.sh +++ b/template/part1.sh @@ -1 +1 @@ -gcc -g -Wall -Wextra -include_.h part1.c mylib.c +gcc -lm -g -Wall -Wextra -include_.h part1.c mylib.c diff --git a/template/part2.sh b/template/part2.sh index 119f5ba..db92d5f 100644 --- a/template/part2.sh +++ b/template/part2.sh @@ -1 +1 @@ -gcc -g -Wall -Wextra -include_.h part2.c mylib.c +gcc -lm -g -Wall -Wextra -include_.h part2.c mylib.c