diff options
Added prettifier and control structure collapse. (#19)
* Create README.md
* Initial commit
* Initial commit
* Create README.md
* Rename homework/81281/c2html.pl to homework/81281/c2html/c2html.pl
* Rename homework/81281/test.c to homework/81281/c2html/test.c
* Update README.md
* Update README.md
* Update c2html.pl
* Update c2html.pl
* Update c2html.pl
* Update README.md
* Update c2html.pl
* Update test.c
* Create executeProgram.sh
* Update README.md
* Update c2html.pl
* Initial commit of updated code + prettify C
* Rename secret.c to messyCode.c
* Update and rename test.c to initialTest.c
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Rename executeProgram.sh to c2htmlrun.sh
* Update README.md
* Update prettify.pl
* Update prettify.pl
* Update messyCode.c
* Fixed some bugs.
* Update README.md
* Update c2html.pl
* Added collapse and fixed matrix representation.
* Updated flatten and added predicate for function identification.
* Update initialTest.c
* Update messyCode.c
* Bug fixing, added is_functionAndBody predicate.
* Update print.pl
* Result after applying prettify and added collapse functions
* Can identify structures and collapse them too
* Can identify structures and collapse them too
* Can identify structures and collapse them too
* Can identify structures and collapse them too
* Can identify structures and collapse them too
* Update messyCode.c
* Update README.md
* Update prettify.pl
* Update README.md
* Update prettify.pl
* Update messyCode.c
* Update messyCode.c
* Update page.html
* Fix bug typedef
* Update page.html
* Added choices
* Update c2html.pl
* Update prettify.pl
* Update prettify.pl
* Update README.md
* Update README.md
* Update c2html.pl
* Update c2html.pl
* Added forgotten do-while structure format
* Update messyCode.c
* Removing unknown tokens from stream
* Rename homework/81281/c2html/page.html to homework/81281/c2html/exampleCodeAndTestPage/page.html
* Rename homework/81281/c2html/messyCode.c to homework/81281/c2html/exampleCodeAndTestPage/messyCode.c
* Rename homework/81281/c2html/initialTest.c to homework/81281/c2html/exampleCodeAndTestPage/initialTest.c
* Update prettify.pl
* Can collapse all control structures and fixed comment /**/
* Can collapse all control structures and fixed comment /**/
* Can collapse all control structures and fixed comment /**/
* Can collapse all control structures and fixed comment /**/
* Can collapse all control structures and fixed comment /**/
* Fixed named of predicates
* Update messyCode.c
* Update page.html
* Update README.md
* Changed execTAB to "\s\s\s\s"
* Changed execTAB to "\s\s\s\s"
* Changed execTAB to "\s\s\s\s"
* Update page.html
* Added new tokens (forgotten operators) and added rules for them
* Added new tokens (forgotten operators) and fixed some old predicates
* Fixed bug with "else '\n' if (..)" in addNewLines predicate
* Fixed regular expression for a string and removed token ttypesPrintF
* Added clauses for handling enum and fixed handling of chars
* Fixed typos
* Added forgotten token to clause
* Fixed "case smt :'\n'" where smt is more than one char
* Fixed some bugs and divided code in modules
* New code module and fixed bugs
* Fixed some bugs with tabulation
* Divided code in modules
1 files changed, 266 insertions, 0 deletions
| -rw-r--r-- | homework/81281/c2html/exampleCodeAndTestPage/page.html | 266 |
diff --git a/homework/81281/c2html/exampleCodeAndTestPage/page.html b/homework/81281/c2html/exampleCodeAndTestPage/page.html new file mode 100644 index 0000000..15ebd7a --- /dev/null +++ b/homework/81281/c2html/exampleCodeAndTestPage/page.html @@ -0,0 +1,266 @@ +<!doctype>
+<html>
+
+ <head>
+ <title>hello.c</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <style>
+ .keyword {
+ color: blue;
+ }
+
+ .number {
+ color: violet;
+ }
+
+ .identifier {
+ color: green;
+ }
+
+ .operator {
+ font-style: bold;
+ color: blue;
+ }
+
+ .comment {
+ color: lime;
+ }
+
+ .string {
+ color: orange;
+ }
+
+ .parenthese {
+ font-style: bold;
+ color: brown;
+ }
+
+ .quotation {
+ font-style: bold;
+ color: black;
+ }
+
+ .unknown {
+ font-style: bold;
+ color: red;
+ }
+
+ .function {
+ color: purple;
+ }
+
+ .collapsible {
+ background-color: PaleGreen;
+ cursor: pointer;
+ padding: 10px;
+ width: 100%;
+ border: none;
+ text-align: left;
+ outline: none;
+ font-size: 15px;
+ }
+
+ .active,
+ .collapsible:hover {
+ background-color: PaleGoldenRod;
+ }
+
+ .content {
+ padding: 0 18px;
+ display: none;
+ overflow: hidden;
+ background-color: #f1f1f1;
+ }
+ </style>
+ </head>
+
+ <body>
+ <pre class="code"><span class="keyword">#include</span> <span class="string"><stdio.h></span>
+<span class="keyword">#include</span> <span class="string"><stdlib.h></span>
+<span class="keyword">#include</span> <span class="string"><time.h></span>
+<span class="keyword">int</span> <span class="identifier">N</span> <span class="operator">=</span> <span class="number">0</span><span class="parenthese">;</span>
+<span class="keyword">int</span> <span class="identifier">a</span><span class="parenthese">[</span><span class="number">750001</span><span class="parenthese">]</span> <span class="operator">=</span> <span class="parenthese">{</span><span class="number">0</span><span class="parenthese">}</span><span class="parenthese">;</span>
+<button class="collapsible"><span class="keyword">struct</span> <span class="identifier">Books</span>
+</span></button>
+<div class="content"><span class="parenthese">{</span>
+ <span class="keyword">char</span> <span class="identifier">title</span><span class="parenthese">[</span><span class="number">50</span><span class="parenthese">]</span><span class="parenthese">;</span>
+ <span class="keyword">char</span> <span class="identifier">author</span><span class="parenthese">[</span><span class="number">50</span><span class="parenthese">]</span><span class="parenthese">;</span>
+ <span class="keyword">char</span> <span class="identifier">subject</span><span class="parenthese">[</span><span class="number">100</span><span class="parenthese">]</span><span class="parenthese">;</span>
+ <span class="keyword">int</span> <span class="identifier">book_id</span><span class="parenthese">;</span>
+<button class="collapsible"> <span class="keyword">void</span> <span class="function">dummy</span><span class="parenthese">(</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"> <span class="parenthese">{</span>
+ <span class="function">printf</span><span class="parenthese">(</span><span class="quotation">"</span><span class="identifier">Hello</span><span class="identifier">\n</span><span class="quotation">"</span><span class="parenthese">)</span><span class="parenthese">;</span>
+<button class="collapsible"> <span class="keyword">for</span> <span class="parenthese">(</span><span class="identifier">size_t</span> <span class="identifier">i</span> <span class="operator">=</span> <span class="number">0</span><span class="parenthese">;</span> <span class="identifier">i</span> <span class="operator"><</span> <span class="identifier">count</span><span class="parenthese">;</span> <span class="identifier">i</span><span class="operator">++</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"> <span class="parenthese">{</span>
+ <span class="comment">/*yes*/</span>
+ <span class="parenthese">}</span>
+
+</div> <span class="parenthese">}</span>
+
+</div><span class="parenthese">}</span> <span class="identifier">book</span><span class="parenthese">;</span>
+
+</div><span class="keyword">typedef</span> <span class="keyword">struct</span> <span class="identifier">temp</span>
+<span class="parenthese">{</span>
+ <span class="keyword">int</span> <span class="identifier">a</span><span class="parenthese">;</span>
+<span class="parenthese">}</span> <span class="identifier">classTemp</span><span class="parenthese">;</span>
+
+<button class="collapsible"><span class="keyword">void</span> <span class="function">classTemp_GetData</span><span class="parenthese">(</span><span class="identifier">classTemp</span> <span class="operator">*</span> <span class="identifier">pThis</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"><span class="parenthese">{</span>
+ <span class="function">printf</span><span class="parenthese">(</span><span class="quotation">"</span><span class="identifier">Enter</span><span class="identifier">value</span><span class="identifier">of</span><span class="identifier">a</span><span class="parenthese">:</span><span class="quotation">"</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="function">scanf</span><span class="parenthese">(</span><span class="quotation">"</span><span class="number">%d</span><span class="quotation">"</span><span class="quotation">,</span> <span class="operator">&</span> <span class="parenthese">(</span><span class="identifier">pThis</span><span class="operator">-></span><span class="identifier">a</span><span class="parenthese">)</span><span class="parenthese">)</span><span class="parenthese">;</span>
+<span class="parenthese">}</span>
+
+</div><span class="identifier">classTemp</span> <span class="identifier">T</span><span class="parenthese">;</span>
+<button class="collapsible"><span class="keyword">struct</span> <span class="identifier">point</span> <span class="operator">*</span> <span class="function">biggest_point</span><span class="parenthese">(</span><span class="identifier">size_t</span> <span class="identifier">size</span><span class="quotation">,</span> <span class="keyword">struct</span> <span class="identifier">point</span> <span class="operator">*</span> <span class="identifier">points</span><span class="quotation">,</span> <span class="keyword">struct</span> <span class="identifier">point</span> <span class="operator">*</span> <span class="parenthese">(</span><span class="operator">*</span><span class="identifier">point_compare</span><span class="parenthese">)</span> <span class="parenthese">(</span><span class="keyword">struct</span> <span class="identifier">point</span> <span class="operator">*</span> <span class="identifier">a</span><span class="quotation">,</span> <span class="keyword">struct</span> <span class="identifier">point</span> <span class="operator">*</span> <span class="identifier">b</span><span class="parenthese">)</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"><span class="parenthese">{</span>
+ <span class="keyword">int</span> <span class="identifier">i</span><span class="parenthese">;</span>
+ <span class="keyword">struct</span> <span class="identifier">point</span> <span class="operator">*</span> <span class="identifier">biggest</span> <span class="operator">=</span> <span class="identifier">NULL</span><span class="parenthese">;</span>
+<button class="collapsible"> <span class="keyword">for</span> <span class="parenthese">(</span><span class="identifier">i</span> <span class="operator">=</span> <span class="number">0</span><span class="parenthese">;</span> <span class="identifier">i</span> <span class="operator"><</span> <span class="identifier">size</span><span class="parenthese">;</span> <span class="identifier">i</span><span class="operator">++</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"> <span class="parenthese">{</span>
+ <span class="identifier">biggest</span> <span class="operator">=</span> <span class="function">point_compare</span><span class="parenthese">(</span><span class="identifier">biggest</span><span class="quotation">,</span> <span class="identifier">points</span> <span class="operator">+</span> <span class="identifier">i</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="parenthese">}</span>
+
+</div> <span class="keyword">return</span> <span class="identifier">biggest</span><span class="parenthese">;</span>
+<span class="parenthese">}</span>
+
+</div><span class="keyword">int</span> <span class="identifier">matrix</span><span class="parenthese">[</span><span class="number">3</span><span class="parenthese">]</span><span class="parenthese">[</span><span class="number">3</span><span class="parenthese">]</span> <span class="operator">=</span> <span class="parenthese">{</span><span class="parenthese">{</span><span class="number">0</span><span class="quotation">,</span> <span class="number">0</span><span class="quotation">,</span> <span class="number">0</span><span class="parenthese">}</span><span class="quotation">,</span> <span class="parenthese">{</span><span class="number">0</span><span class="quotation">,</span> <span class="number">1</span><span class="quotation">,</span> <span class="number">0</span><span class="parenthese">}</span><span class="quotation">,</span> <span class="parenthese">{</span><span class="number">0</span><span class="quotation">,</span> <span class="number">1</span><span class="quotation">,</span> <span class="number">1</span><span class="parenthese">}</span><span class="parenthese">}</span><span class="parenthese">;</span>
+<span class="keyword">int</span> <span class="identifier">arr</span><span class="parenthese">[</span><span class="number">3</span><span class="parenthese">]</span> <span class="operator">=</span> <span class="parenthese">{</span><span class="number">0</span><span class="quotation">,</span> <span class="number">0</span><span class="quotation">,</span> <span class="number">0</span><span class="parenthese">}</span><span class="parenthese">;</span>
+<span class="keyword">char</span> <span class="identifier">matrix</span><span class="parenthese">[</span><span class="number">3</span><span class="parenthese">]</span><span class="parenthese">[</span><span class="number">3</span><span class="parenthese">]</span> <span class="operator">=</span> <span class="parenthese">{</span><span class="parenthese">{</span><span class="quotation">'</span><span class="number">0</span><span class="quotation">'</span><span class="quotation">,</span> <span class="quotation">'</span><span class="number">0</span><span class="quotation">'</span><span class="quotation">,</span> <span class="quotation">'</span><span class="number">0</span><span class="quotation">'</span><span class="parenthese">}</span><span class="quotation">,</span> <span class="parenthese">{</span><span class="quotation">'</span><span class="number">0</span><span class="quotation">'</span><span class="quotation">,</span> <span class="quotation">'</span><span class="number">1</span><span class="quotation">'</span><span class="quotation">,</span> <span class="quotation">'</span><span class="number">0</span><span class="quotation">'</span><span class="parenthese">}</span><span class="quotation">,</span> <span class="parenthese">{</span><span class="quotation">'</span><span class="number">0</span><span class="quotation">'</span><span class="quotation">,</span> <span class="quotation">'</span><span class="number">1</span><span class="quotation">'</span><span class="quotation">,</span> <span class="quotation">'</span><span class="number">1</span><span class="quotation">'</span><span class="parenthese">}</span><span class="parenthese">}</span><span class="parenthese">;</span>
+<span class="comment">/*Problem Secrect DAA
+/// lalalallala
+*/</span>
+<span class="comment">//// mauuu</span>
+<span class="keyword">int</span> <span class="identifier">a</span><span class="quotation">,</span> <span class="identifier">b</span><span class="parenthese">;</span>
+<button class="collapsible"><span class="keyword">void</span> <span class="function">swap</span><span class="parenthese">(</span><span class="keyword">int</span> <span class="operator">*</span><span class="identifier">i</span><span class="quotation">,</span> <span class="keyword">int</span> <span class="operator">*</span><span class="identifier">j</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"><span class="parenthese">{</span>
+ <span class="keyword">int</span> <span class="identifier">t</span> <span class="operator">=</span> <span class="operator">*</span><span class="identifier">i</span><span class="parenthese">;</span>
+ <span class="operator">*</span><span class="identifier">i</span><span class="operator">=</span> <span class="operator">*</span><span class="identifier">j</span><span class="parenthese">;</span>
+ <span class="parenthese">(</span><span class="operator">*</span><span class="identifier">i</span><span class="parenthese">)</span><span class="operator">-></span><span class="function">go</span><span class="parenthese">(</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="operator">*</span><span class="identifier">j</span><span class="operator">=</span> <span class="identifier">t</span><span class="parenthese">;</span>
+<button class="collapsible"> <span class="keyword">do</span>
+</span></button>
+<div class="content"> <span class="parenthese">{</span>
+ <span class="function">printf</span><span class="parenthese">(</span><span class="quotation">"</span><span class="identifier">mau</span><span class="identifier">\n</span><span class="quotation">"</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="parenthese">}</span> <span class="keyword">while</span> <span class="parenthese">(</span><span class="identifier">i</span> <span class="operator">></span> <span class="number">1</span><span class="parenthese">)</span><span class="parenthese">;</span>
+
+</div><span class="parenthese">}</span>
+
+</div><button class="collapsible"><span class="keyword">int</span> <span class="function">partition</span><span class="parenthese">(</span><span class="keyword">int</span> <span class="identifier">l</span><span class="quotation">,</span> <span class="keyword">int</span> <span class="identifier">r</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"><span class="parenthese">{</span>
+ <span class="keyword">int</span> <span class="identifier">randIdx</span> <span class="operator">=</span> <span class="identifier">l</span> <span class="operator">+</span> <span class="function">rand</span><span class="parenthese">(</span><span class="parenthese">)</span> <span class="operator">%</span> <span class="parenthese">(</span><span class="identifier">r</span> <span class="operator">-</span> <span class="identifier">l</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="keyword">int</span> <span class="identifier">pivot</span> <span class="operator">=</span> <span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">randIdx</span><span class="parenthese">]</span><span class="parenthese">;</span>
+ <span class="function">swap</span><span class="parenthese">(</span><span class="operator">&</span><span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">l</span><span class="parenthese">]</span><span class="quotation">,</span> <span class="operator">&</span><span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">randIdx</span><span class="parenthese">]</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="keyword">int</span> <span class="identifier">ind</span> <span class="operator">=</span> <span class="identifier">l</span><span class="parenthese">;</span>
+<button class="collapsible"> <span class="keyword">for</span> <span class="parenthese">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="operator">=</span> <span class="identifier">l</span> <span class="operator">+</span> <span class="number">1</span><span class="parenthese">;</span> <span class="identifier">i</span> <span class="operator"><</span> <span class="identifier">r</span><span class="parenthese">;</span> <span class="identifier">i</span><span class="operator">++</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"> <span class="parenthese">{</span>
+<button class="collapsible"> <span class="keyword">if</span> <span class="parenthese">(</span><span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">i</span><span class="parenthese">]</span> <span class="operator"><=</span> <span class="identifier">pivot</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"> <span class="parenthese">{</span>
+ <span class="identifier">ind</span><span class="operator">++</span><span class="parenthese">;</span>
+ <span class="function">swap</span><span class="parenthese">(</span><span class="operator">&</span><span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">i</span><span class="parenthese">]</span><span class="quotation">,</span> <span class="operator">&</span><span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">ind</span><span class="parenthese">]</span><span class="parenthese">)</span><span class="parenthese">;</span>
+<button class="collapsible"> <span class="keyword">switch</span> <span class="parenthese">(</span><span class="identifier">allala</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"> <span class="parenthese">{</span>
+ <span class="keyword">case</span> <span class="number">0</span> <span class="parenthese">:</span>
+ <span class="identifier">o</span> <span class="operator">=</span> <span class="number">9</span><span class="parenthese">;</span>
+ <span class="keyword">break</span><span class="parenthese">;</span>
+ <span class="keyword">default</span> <span class="parenthese">:</span>
+ <span class="keyword">break</span><span class="parenthese">;</span>
+ <span class="parenthese">}</span>
+
+</div> <span class="parenthese">}</span>
+
+</div> <span class="parenthese">}</span>
+
+</div> <span class="function">swap</span><span class="parenthese">(</span><span class="operator">&</span><span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">l</span><span class="parenthese">]</span><span class="quotation">,</span> <span class="operator">&</span><span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">ind</span><span class="parenthese">]</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="keyword">return</span> <span class="identifier">ind</span><span class="parenthese">;</span>
+<span class="parenthese">}</span>
+
+</div><button class="collapsible"><span class="keyword">void</span> <span class="function">quickSort</span><span class="parenthese">(</span><span class="keyword">int</span> <span class="identifier">l</span><span class="quotation">,</span> <span class="keyword">int</span> <span class="identifier">r</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"><span class="parenthese">{</span>
+<button class="collapsible"> <span class="keyword">if</span> <span class="parenthese">(</span><span class="identifier">l</span> <span class="operator"><</span> <span class="identifier">r</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"> <span class="parenthese">{</span>
+ <span class="keyword">int</span> <span class="identifier">idx</span> <span class="operator">=</span> <span class="function">partition</span><span class="parenthese">(</span><span class="identifier">l</span><span class="quotation">,</span> <span class="identifier">r</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="function">quickSort</span><span class="parenthese">(</span><span class="identifier">l</span><span class="quotation">,</span> <span class="identifier">idx</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="function">quickSort</span><span class="parenthese">(</span><span class="identifier">idx</span> <span class="operator">+</span> <span class="number">1</span><span class="quotation">,</span> <span class="identifier">r</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="parenthese">}</span>
+
+</div><span class="parenthese">}</span>
+
+</div><button class="collapsible"><span class="keyword">int</span> <span class="function">binarySearch</span><span class="parenthese">(</span><span class="keyword">int</span> <span class="identifier">k</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"><span class="parenthese">{</span>
+ <span class="keyword">int</span> <span class="identifier">middle</span><span class="quotation">,</span> <span class="identifier">left</span> <span class="operator">=</span> <span class="number">0</span><span class="quotation">,</span> <span class="identifier">right</span> <span class="operator">=</span> <span class="identifier">N</span> <span class="operator">-</span> <span class="number">1</span><span class="parenthese">;</span>
+ <span class="keyword">if</span> <span class="parenthese">(</span><span class="identifier">k</span> <span class="operator"><</span> <span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">left</span><span class="parenthese">]</span><span class="parenthese">)</span>
+ <span class="keyword">return</span> <span class="parenthese">(</span><span class="number">-1</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="keyword">if</span> <span class="parenthese">(</span><span class="identifier">k</span> <span class="operator">==</span> <span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">left</span><span class="parenthese">]</span><span class="parenthese">)</span>
+ <span class="keyword">return</span> <span class="parenthese">(</span><span class="identifier">left</span> <span class="operator">+</span> <span class="number">1</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="keyword">if</span> <span class="parenthese">(</span><span class="identifier">k</span> <span class="operator">></span> <span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">right</span><span class="parenthese">]</span><span class="parenthese">)</span>
+ <span class="keyword">return</span> <span class="parenthese">(</span><span class="number">-1</span><span class="parenthese">)</span><span class="parenthese">;</span>
+<button class="collapsible"> <span class="keyword">while</span> <span class="parenthese">(</span><span class="identifier">right</span> <span class="operator">-</span> <span class="identifier">left</span> <span class="operator">></span> <span class="number">1</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"> <span class="parenthese">{</span>
+ <span class="identifier">middle</span> <span class="operator">=</span> <span class="parenthese">(</span><span class="identifier">left</span> <span class="operator">+</span> <span class="identifier">right</span><span class="parenthese">)</span> <span class="operator">/</span> <span class="number">2</span><span class="parenthese">;</span>
+ <span class="keyword">if</span> <span class="parenthese">(</span><span class="identifier">k</span> <span class="operator"><=</span> <span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">middle</span><span class="parenthese">]</span><span class="parenthese">)</span>
+ <span class="identifier">right</span> <span class="operator">=</span> <span class="identifier">middle</span><span class="parenthese">;</span>
+ <span class="keyword">else</span>
+ <span class="identifier">left</span> <span class="operator">=</span> <span class="identifier">middle</span><span class="parenthese">;</span>
+ <span class="parenthese">}</span>
+
+</div> <span class="keyword">return</span> <span class="parenthese">(</span><span class="parenthese">(</span><span class="identifier">right</span> <span class="operator"><=</span> <span class="identifier">N</span> <span class="operator">-</span> <span class="number">1</span> <span class="operator">&&</span> <span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">right</span><span class="parenthese">]</span> <span class="operator">==</span> <span class="identifier">k</span><span class="parenthese">)</span> <span class="quotation">?</span> <span class="parenthese">(</span><span class="identifier">right</span> <span class="operator">+</span> <span class="number">1</span><span class="parenthese">)</span> <span class="parenthese">:</span> <span class="parenthese">(</span><span class="number">-1</span><span class="parenthese">)</span><span class="parenthese">)</span><span class="parenthese">;</span>
+<span class="parenthese">}</span>
+
+</div><button class="collapsible"><span class="keyword">int</span> <span class="function">main</span><span class="parenthese">(</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"><span class="parenthese">{</span>
+ <span class="function">srand</span><span class="parenthese">(</span><span class="function">time</span><span class="parenthese">(</span><span class="number">0</span><span class="parenthese">)</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="function">scanf</span><span class="parenthese">(</span><span class="quotation">"</span><span class="number">%d</span><span class="quotation">"</span><span class="quotation">,</span> <span class="operator">&</span><span class="identifier">N</span><span class="parenthese">)</span><span class="parenthese">;</span>
+<button class="collapsible"> <span class="keyword">for</span> <span class="parenthese">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="operator">=</span> <span class="number">0</span><span class="parenthese">;</span> <span class="identifier">i</span> <span class="operator"><</span> <span class="identifier">N</span><span class="parenthese">;</span> <span class="operator">++</span><span class="identifier">i</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"> <span class="parenthese">{</span>
+ <span class="function">scanf</span><span class="parenthese">(</span><span class="quotation">"</span><span class="number">%d</span><span class="quotation">"</span><span class="quotation">,</span> <span class="operator">&</span><span class="identifier">a</span><span class="parenthese">[</span><span class="identifier">i</span><span class="parenthese">]</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="parenthese">}</span>
+
+</div> <span class="function">quickSort</span><span class="parenthese">(</span><span class="number">0</span><span class="quotation">,</span> <span class="identifier">N</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="keyword">int</span> <span class="identifier">tmp</span> <span class="operator">=</span> <span class="number">0</span><span class="parenthese">;</span>
+ <span class="function">scanf</span><span class="parenthese">(</span><span class="quotation">"</span><span class="number">%d</span><span class="quotation">"</span><span class="quotation">,</span> <span class="operator">&</span><span class="identifier">tmp</span><span class="parenthese">)</span><span class="parenthese">;</span>
+<button class="collapsible"> <span class="keyword">while</span> <span class="parenthese">(</span><span class="identifier">tmp</span> <span class="operator">!=</span> <span class="number">0</span><span class="parenthese">)</span>
+</span></button>
+<div class="content"> <span class="parenthese">{</span>
+ <span class="function">printf</span><span class="parenthese">(</span><span class="quotation">"</span><span class="number">%d</span><span class="identifier">\n</span><span class="quotation">"</span><span class="quotation">,</span> <span class="function">binarySearch</span><span class="parenthese">(</span><span class="identifier">tmp</span><span class="parenthese">)</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="function">scanf</span><span class="parenthese">(</span><span class="quotation">"</span><span class="number">%d</span><span class="quotation">"</span><span class="quotation">,</span> <span class="operator">&</span><span class="identifier">tmp</span><span class="parenthese">)</span><span class="parenthese">;</span>
+ <span class="parenthese">}</span>
+
+</div> <span class="keyword">return</span> <span class="number">0</span><span class="parenthese">;</span>
+<span class="parenthese">}</span>
+
+</div> <script>
+ var coll = document.getElementsByClassName("collapsible");
+ var i;
+
+ for (i = 0; i < coll.length; i++) {
+ coll[i].addEventListener("click", function() {
+ this.classList.toggle("active");
+ var content = this.nextElementSibling;
+ if (content.style.display === "block") {
+ content.style.display = "none";
+ } else {
+ content.style.display = "block";
+ }
+ });
+ }
+ </script>
+ </pre>
+ </body>
+
+</html>
|
