<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Керниган и Ритчи язык С</title>
		<link>http://krcl.ucoz.ru/</link>
		<description>Блог</description>
		<lastBuildDate>Sat, 17 Apr 2010 17:39:48 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://krcl.ucoz.ru/blog/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>1.9. Массивы символов. Упражнение 1.19.</title>
			<description>&lt;p&gt;&lt;b&gt;Упражнение 1.19.&lt;/b&gt; Напишите функцию reverse(s), которая переписывает свой строковый аргумент s в обратном порядке. Воспользуйтесь ею для написания программы, которая бы выполняла такое обращение над каждой строкой входного потока по очереди.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;comm&quot;&gt;/* программа, переписывающая строку в обратном порядке */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; MAXLINE 1000 &lt;span class=&quot;comm&quot;&gt;/* максимальная длина строки в потоке */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;void&lt;/span&gt; reverse(&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; s[]);&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; line[MAXLINE]; &lt;span class=&quot;comm&quot;&gt;/* текущая введенная строка */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; c;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; i;&lt;br/&gt;&lt;br/&gt;

 i = 0;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((c = getchar()) != EOF) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;line[i] ...</description>
			<content:encoded>&lt;p&gt;&lt;b&gt;Упражнение 1.19.&lt;/b&gt; Напишите функцию reverse(s), которая переписывает свой строковый аргумент s в обратном порядке. Воспользуйтесь ею для написания программы, которая бы выполняла такое обращение над каждой строкой входного потока по очереди.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;comm&quot;&gt;/* программа, переписывающая строку в обратном порядке */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; MAXLINE 1000 &lt;span class=&quot;comm&quot;&gt;/* максимальная длина строки в потоке */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;void&lt;/span&gt; reverse(&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; s[]);&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; line[MAXLINE]; &lt;span class=&quot;comm&quot;&gt;/* текущая введенная строка */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; c;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; i;&lt;br/&gt;&lt;br/&gt;

 i = 0;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((c = getchar()) != EOF) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;line[i] = c;&lt;br/&gt;
 ++i;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt;){&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;line[i] = &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;0&apos;&lt;/span&gt;;&lt;br/&gt;
 i = 0;&lt;br/&gt;
 reverse(line);&lt;br/&gt;
 printf(&lt;span class=&quot;quote&quot;&gt;&quot;%s&quot;&lt;/span&gt;, line);&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;}&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;fword&quot;&gt;return&lt;/span&gt; 0;&lt;/p&gt;
}&lt;br/&gt;&lt;br/&gt;

&lt;span class=&quot;fword&quot;&gt;void&lt;/span&gt; reverse(&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; s[])&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; i, j, n;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; temp[MAXLINE];&lt;br/&gt;&lt;br/&gt;
 
 j = 0;&lt;br/&gt;
 i = 0;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; (s[j] != &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt;) &lt;span class=&quot;comm&quot;&gt;/* считаем количество символов в строке */&lt;/span&gt;&lt;p/&gt;
 &lt;p class=&quot;tab2&quot;&gt;++j;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;n = j;&lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;comm&quot;&gt;/* переписываем строку в обратном порядке в вспомогательный массив */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 0; j != 0; ++i) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;temp[j - 1] = s[i];&lt;br/&gt;
 --j;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;br/&gt;
 &lt;span class=&quot;comm&quot;&gt;/* переписываем строку в основной массив */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 0; n != 0; ++i) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;s[i] = temp[i];&lt;br/&gt;
 --n;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;/p&gt;
}

&lt;p&gt;Результат выполнения:&lt;/p&gt;
&lt;img src=&quot;https://krcl.ucoz.ru/ex/1/1.19.jpg&quot; border=&quot;0&quot; alt=&quot;Строка наоборот&quot; title=&quot;Строка наоборот&quot; /&gt;</content:encoded>
			<link>https://krcl.ucoz.ru/blog/1_9_massivy_simvolov_uprazhnenie_1_19/2010-04-17-20</link>
			<dc:creator>brainfrog</dc:creator>
			<guid>https://krcl.ucoz.ru/blog/1_9_massivy_simvolov_uprazhnenie_1_19/2010-04-17-20</guid>
			<pubDate>Sat, 17 Apr 2010 17:39:48 GMT</pubDate>
		</item>
		<item>
			<title>1.9. Массивы символов. Упражнение 1.18.</title>
			<description>&lt;p&gt;&lt;b&gt;Упражнение 1.18.&lt;/b&gt; Напишите программу для удаления лишних пробелов и табуляций в хвосте каждой поступающей строки входного потока, которая бы также удаляла полностью пустые строки.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;comm&quot;&gt;/* программа для удаления лишних пробелов и табуляций */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; MAXLINE 1000 &lt;span class=&quot;comm&quot;&gt;/* максимальная длина строки в потоке */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; getline(&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; line[], &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; maxline);&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; len; &lt;span class=&quot;comm&quot;&gt;/* длина текущей строки */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; i;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; line[MAXLINE]; &lt;span class=&quot;comm&quot;&gt;/* текущая введенная строка */&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((len = getline(line, MAXLINE)) &gt; 0) {&lt;/...</description>
			<content:encoded>&lt;p&gt;&lt;b&gt;Упражнение 1.18.&lt;/b&gt; Напишите программу для удаления лишних пробелов и табуляций в хвосте каждой поступающей строки входного потока, которая бы также удаляла полностью пустые строки.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;comm&quot;&gt;/* программа для удаления лишних пробелов и табуляций */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; MAXLINE 1000 &lt;span class=&quot;comm&quot;&gt;/* максимальная длина строки в потоке */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; getline(&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; line[], &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; maxline);&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; len; &lt;span class=&quot;comm&quot;&gt;/* длина текущей строки */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; i;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; line[MAXLINE]; &lt;span class=&quot;comm&quot;&gt;/* текущая введенная строка */&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((len = getline(line, MAXLINE)) &gt; 0) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;--len; &lt;span class=&quot;comm&quot;&gt;/* &quot;выкидываем&quot; нулевой символ &apos;&amp;#92;0&apos; */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;comm&quot;&gt;/* если на конце строки есть пробел или табуляция, &lt;br/&gt;
 &quot;обрезаем&quot; строку пока не встретим любой другой символ */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = len - 1; i &gt; 0; --i) {&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (line[i] == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;t&apos;&lt;/span&gt; || line[i] == &lt;span class=&quot;quote&quot;&gt;&apos; &apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab4&quot;&gt;--len;&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;&lt;span class=&quot;fword&quot;&gt;else&lt;/span&gt; i = 0;&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;}&lt;br/&gt;
 &lt;span class=&quot;comm&quot;&gt;/* если строка непустая, выводим её */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (len != 0) {&lt;br/&gt;
 &lt;p class=&quot;tab3&quot;&gt;&lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 0; i &lt; len; ++i)&lt;/p&gt;
 &lt;p class=&quot;tab4&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;%c&quot;&lt;/span&gt;, line[i]);&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;&amp;#92;n&quot;&lt;/span&gt;);&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;}&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;return&lt;/span&gt; 0;&lt;/p&gt;
}&lt;br/&gt;&lt;br/&gt;

&lt;span class=&quot;comm&quot;&gt;/* getline: считывает строку в s, возвращает ее длину */&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; getline (&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; s[], &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; lim)&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c, i;&lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 0; i &lt; lim - 1 &amp;&amp; (c = getchar()) != EOF &amp;&amp; c != &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt;; ++i)&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;s[i] = c;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt;) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;s[i] = c;&lt;br/&gt;
 ++i;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;br/&gt;
 s[i] = &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;0&apos;&lt;/span&gt;;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;return&lt;/span&gt; i;&lt;/p&gt;
}

&lt;p&gt;Для наглядности, вместо пробелов и табуляций программа удаляет 0 и 1 в конце строки. Выглядит это вот так: &lt;/p&gt;
&lt;img src=&quot;https://krcl.ucoz.ru/ex/1/1.18.jpg&quot; border=&quot;0&quot; alt=&quot;Удаление пробелов&quot; title=&quot;Удаление пробелов&quot; /&gt;&lt;span style=&quot;font-family:&apos;Arial&apos;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size:10pt&quot;&gt;&lt;/span&gt;</content:encoded>
			<link>https://krcl.ucoz.ru/blog/1_9_massivy_simvolov_uprazhnenie_1_18/2010-04-08-19</link>
			<dc:creator>brainfrog</dc:creator>
			<guid>https://krcl.ucoz.ru/blog/1_9_massivy_simvolov_uprazhnenie_1_18/2010-04-08-19</guid>
			<pubDate>Thu, 08 Apr 2010 12:06:46 GMT</pubDate>
		</item>
		<item>
			<title>1.9. Массивы символов. Упражнение 1.17.</title>
			<description>&lt;p&gt;&lt;b&gt;Упражнение 1.17.&lt;/b&gt; Напишите программу для вывода всех строк входного потока, имеющих длину более 80 символов.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;comm&quot;&gt;/* программа вывода всех строк входного потока, имеющих длину более 80 символов */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; MAXLINE 1000 &lt;span class=&quot;comm&quot;&gt;/* максимальная длина строки в потоке */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; getline(&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; line[], &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; maxline);&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; len; &lt;span class=&quot;comm&quot;&gt;/* длина текущей строки */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; line[MAXLINE]; &lt;span class=&quot;comm&quot;&gt;/* текущая введенная строка */&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;

 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((len = getline(line, MAXLINE)) &gt; 0)&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;comm&quot;&gt;/* если количество символов в стро...</description>
			<content:encoded>&lt;p&gt;&lt;b&gt;Упражнение 1.17.&lt;/b&gt; Напишите программу для вывода всех строк входного потока, имеющих длину более 80 символов.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;comm&quot;&gt;/* программа вывода всех строк входного потока, имеющих длину более 80 символов */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; MAXLINE 1000 &lt;span class=&quot;comm&quot;&gt;/* максимальная длина строки в потоке */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; getline(&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; line[], &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; maxline);&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; len; &lt;span class=&quot;comm&quot;&gt;/* длина текущей строки */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; line[MAXLINE]; &lt;span class=&quot;comm&quot;&gt;/* текущая введенная строка */&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;

 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((len = getline(line, MAXLINE)) &gt; 0)&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;comm&quot;&gt;/* если количество символов в строке больше 80, выводим эту строку */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (len - 1 &gt; 80) &lt;span class=&quot;comm&quot;&gt;/* &quot;len - 1&quot; не считаем нулевой символ &apos;&amp;#92;0&apos; */&lt;/span&gt;&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;This string is longer than 80 characters: %s&quot;&lt;/span&gt;, line);&lt;/p&gt;

 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;return&lt;/span&gt; 0;&lt;/p&gt;
}&lt;br/&gt;&lt;br/&gt;

&lt;span class=&quot;comm&quot;&gt;/* getline: считывает строку в s, возвращает ее длину */&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; getline (&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; s[], &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; lim)&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c, i;&lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 0; i &lt; lim - 1 &amp;&amp; (c = getchar()) != EOF &amp;&amp; c != &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt;; ++i)&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;s[i] = c;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt;) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;s[i] = c;&lt;br/&gt;
 ++i;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;br/&gt;
 s[i] = &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;0&apos;&lt;/span&gt;;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;return&lt;/span&gt; i;&lt;/p&gt;
}

&lt;p&gt; Результат работы программы для строк длиннее 10 символов: &lt;/p&gt;
&lt;img src=&quot;https://krcl.ucoz.ru/ex/1/1.17.jpg&quot; border=&quot;0&quot; alt=&quot;длина строки&quot; title=&quot;длина строки&quot; /&gt;</content:encoded>
			<link>https://krcl.ucoz.ru/blog/1_9_massivy_simvolov_uprazhnenie_1_17/2010-04-07-18</link>
			<dc:creator>brainfrog</dc:creator>
			<guid>https://krcl.ucoz.ru/blog/1_9_massivy_simvolov_uprazhnenie_1_17/2010-04-07-18</guid>
			<pubDate>Wed, 07 Apr 2010 14:07:14 GMT</pubDate>
		</item>
		<item>
			<title>1.9. Массивы символов. Упражнение 1.16.</title>
			<description>&lt;p&gt;&lt;b&gt;Упражнение 1.16.&lt;/b&gt; Доработайте главный модуль программы определения самой длинной строки так, чтобы она выводила правильное значение для какой угодно длины строк входного потока, насколько это позволяет текст.&lt;/p&gt;

&lt;p&gt;В непереведенном варианте задача звучит так: &quot;Revise the main routine of the longest-line program so it will correctly print the length of arbitrarily long input lines, and as much as possible of the text.&quot;, а в примере программы есть вывод количества символов в самой длинной строке. То есть надо исправить функцию main, чтобы программа корректно выводила количество символов самой длинной строки и максимально возможное количество текста (ограничение - MAXLINE).&lt;/p&gt;

&lt;p&gt;Доработанная программа будет выглядеть так:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;comm&quot;&gt;/* программа определения самой длинной строки */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; MAXLINE 1000 &lt;span class=&quot;comm&quot;&gt;/* максимальная длин...</description>
			<content:encoded>&lt;p&gt;&lt;b&gt;Упражнение 1.16.&lt;/b&gt; Доработайте главный модуль программы определения самой длинной строки так, чтобы она выводила правильное значение для какой угодно длины строк входного потока, насколько это позволяет текст.&lt;/p&gt;

&lt;p&gt;В непереведенном варианте задача звучит так: &quot;Revise the main routine of the longest-line program so it will correctly print the length of arbitrarily long input lines, and as much as possible of the text.&quot;, а в примере программы есть вывод количества символов в самой длинной строке. То есть надо исправить функцию main, чтобы программа корректно выводила количество символов самой длинной строки и максимально возможное количество текста (ограничение - MAXLINE).&lt;/p&gt;

&lt;p&gt;Доработанная программа будет выглядеть так:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;comm&quot;&gt;/* программа определения самой длинной строки */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; MAXLINE 1000 &lt;span class=&quot;comm&quot;&gt;/* максимальная длина строки в потоке */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; getline(&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; line[], &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; maxline);&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;void&lt;/span&gt; copy(&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; to[], &lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; from[]);&lt;/p&gt;

&lt;span class=&quot;comm&quot;&gt;/* вывод самой длинной строки в потоке */&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; len; &lt;span class=&quot;comm&quot;&gt;/* длина текущей строки */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; max; &lt;span class=&quot;comm&quot;&gt;/* текущая максимальная длина */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; line[MAXLINE]; &lt;span class=&quot;comm&quot;&gt;/* текущая введенная строка */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; longest[MAXLINE]; &lt;span class=&quot;comm&quot;&gt;/* самая длинная строка из введенных */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c;&lt;/p&gt;&lt;br/&gt;

 &lt;p class=&quot;tab&quot;&gt;max = 0;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((len = getline(line, MAXLINE)) &gt; 0) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;comm&quot;&gt;/* если строка больше MAXLINE, продолжаем считаем количество символов */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (line[len-1] != &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;&lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((c = getchar()) != EOF &amp;&amp; c != &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab4&quot;&gt;++len;&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (len &gt; max) {&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;max = len;&lt;br/&gt;
 copy(longest, line);&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;}&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;br/&gt;
 &lt;span class=&quot;comm&quot;&gt;/* если строка короче MAXLINE, то функция getline добавляет &lt;br/&gt;
 в конце строки &apos;&amp;#92;0&apos;, который нам считать не нужно */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (max &lt; MAXLINE)&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;--max;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (max &gt; 0) { &lt;span class=&quot;comm&quot;&gt;/* была непустая строка */&lt;/span&gt;&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (max &gt; len)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;The longest line is:%s ...&amp;#92;n&quot;&lt;/span&gt;, longest);&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;else&lt;/span&gt; printf(&lt;span class=&quot;quote&quot;&gt;&quot;The longest line is: %s&amp;#92;n&quot;&lt;/span&gt;, longest);&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt; printf(&lt;span class=&quot;quote&quot;&gt;&quot;This line consists of %d characters&amp;#92;n&quot;&lt;/span&gt;, max);&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;fword&quot;&gt;return&lt;/span&gt; 0;&lt;/p&gt;
}&lt;br/&gt;&lt;br/&gt;

&lt;span class=&quot;comm&quot;&gt;/* getline: считывает строку в s, возвращает ее длину */&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; getline (&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; s[], &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; lim)&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c, i;&lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 0; i &lt; lim - 1 &amp;&amp; (c = getchar()) != EOF &amp;&amp; c != &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt;; ++i)&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;s[i] = c;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt;) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;s[i] = c;&lt;br/&gt;
 ++i;&lt;/p&gt;
&lt;p class=&quot;tab&quot;&gt;}&lt;br/&gt;
 s[i] = &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;0&apos;&lt;/span&gt;;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;return&lt;/span&gt; i;&lt;/p&gt;
}&lt;br/&gt;&lt;br/&gt;

&lt;span class=&quot;comm&quot;&gt;/* copy: копирует строку &apos;from&apos; в &apos;to&apos;; длина to считается достаточно точной */&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;void&lt;/span&gt; copy(&lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; to[], &lt;span class=&quot;fword&quot;&gt;char&lt;/span&gt; from[])&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; i;&lt;br/&gt;&lt;br/&gt;

 i = 0;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((to[i] = from[i]) != &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;0&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;++i;&lt;/p&gt;
}

&lt;p&gt;Для наглядности ограничиим MAXLINE 10 символоми. Результат работы программы: &lt;/p&gt;
&lt;img src=&quot;https://krcl.ucoz.ru/ex/1/1.16.jpg&quot; border=&quot;0&quot; alt=&quot;длина строки&quot; title=&quot;длина строки&quot; /&gt;</content:encoded>
			<link>https://krcl.ucoz.ru/blog/1_9_massivy_simvolov/2010-04-01-10</link>
			<dc:creator>brainfrog</dc:creator>
			<guid>https://krcl.ucoz.ru/blog/1_9_massivy_simvolov/2010-04-01-10</guid>
			<pubDate>Thu, 01 Apr 2010 14:36:01 GMT</pubDate>
		</item>
		<item>
			<title>1.7. Функции. Упражнение 1.15.</title>
			<description>&lt;p&gt;&lt;b&gt;Упражнение 1.15.&lt;/b&gt; Перепишите программу преобразования температур из раздела 1.2 так, чтобы само преобразование выполнялось функцией.&lt;/p&gt;

&lt;p&gt;Измененная программа:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;comm&quot;&gt;/* программа преобразования температур с использованием функции */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot; &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;double&lt;/span&gt; conv(&lt;span class=&quot;fword&quot;&gt;double&lt;/span&gt; fahr, &lt;span class=&quot;fword&quot;&gt;double&lt;/span&gt; celsius);&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;double&lt;/span&gt; fahr, celsius = 0; &lt;span class=&quot;comm&quot;&gt;// температура по Фарингейту и Цельсию &lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; lower, upper, step; &lt;br/&gt;&lt;br/&gt;

 lower = 0; &lt;span class=&quot;comm&quot;&gt;// нижняя граница температур &lt;/span&gt;&lt;br/&gt;
 upper = 300; &lt;span class=&quot;comm&quot;&gt;// верхняя граница температур &lt;/span&gt;&lt;br/&gt;
 step = 20; &lt;span class=&quot;comm&quot;&gt;// величина шага&lt;/span&gt;&lt;br/&gt;
 fahr = lower; &lt;span class=&quot;comm&quot;&gt;// задаем н...</description>
			<content:encoded>&lt;p&gt;&lt;b&gt;Упражнение 1.15.&lt;/b&gt; Перепишите программу преобразования температур из раздела 1.2 так, чтобы само преобразование выполнялось функцией.&lt;/p&gt;

&lt;p&gt;Измененная программа:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;comm&quot;&gt;/* программа преобразования температур с использованием функции */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot; &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;double&lt;/span&gt; conv(&lt;span class=&quot;fword&quot;&gt;double&lt;/span&gt; fahr, &lt;span class=&quot;fword&quot;&gt;double&lt;/span&gt; celsius);&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;double&lt;/span&gt; fahr, celsius = 0; &lt;span class=&quot;comm&quot;&gt;// температура по Фарингейту и Цельсию &lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; lower, upper, step; &lt;br/&gt;&lt;br/&gt;

 lower = 0; &lt;span class=&quot;comm&quot;&gt;// нижняя граница температур &lt;/span&gt;&lt;br/&gt;
 upper = 300; &lt;span class=&quot;comm&quot;&gt;// верхняя граница температур &lt;/span&gt;&lt;br/&gt;
 step = 20; &lt;span class=&quot;comm&quot;&gt;// величина шага&lt;/span&gt;&lt;br/&gt;
 fahr = lower; &lt;span class=&quot;comm&quot;&gt;// задаем начальное значение темературы по Фаренгейту &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;

 printf(&lt;span class=&quot;quote&quot;&gt;&quot;Temperature Conversion Table&amp;#92;n&amp;#92;n&quot;&lt;/span&gt;); &lt;br/&gt;
 printf(&lt;span class=&quot;quote&quot;&gt;&quot; Fahrenheit &amp;#92;t Celsius&amp;#92;n&amp;#92;n&quot;&lt;/span&gt;); &lt;span class=&quot;comm&quot;&gt;// выводим заголовок &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; (fahr &lt;= upper) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;celsius = conv(fahr, celsius);&lt;br/&gt;
 printf(&lt;span class=&quot;quote&quot;&gt;&quot;%6.0f&amp;#92;t&amp;#92;t %6.2f&amp;#92;n&quot;&lt;/span&gt;, fahr, celsius);&lt;br/&gt;
 fahr += step;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;br/&gt;&lt;br/&gt;
 
&lt;span class=&quot;fword&quot;&gt;return&lt;/span&gt; 0;&lt;/p&gt;
}&lt;br/&gt;&lt;br/&gt;

&lt;span class=&quot;comm&quot;&gt;/* функция преобразования */&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;double&lt;/span&gt; conv(&lt;span class=&quot;fword&quot;&gt;double&lt;/span&gt; fahr, &lt;span class=&quot;fword&quot;&gt;double&lt;/span&gt; celsius)&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;celsius = (5.0 / 9.0) * (fahr - 32.0);&lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;fword&quot;&gt;return&lt;/span&gt; celsius;&lt;/p&gt;
}

&lt;p&gt; Результат работы программы: &lt;/p&gt;
&lt;img src=&quot;https://krcl.ucoz.ru/ex/1/1.3.jpg&quot; border=&quot;0&quot; alt=&quot;Фаренгейт - Цельсий&quot; title=&quot;Фаренгейт - Цельсий&quot; /&gt;</content:encoded>
			<link>https://krcl.ucoz.ru/blog/1_7_funkcii/2010-03-13-9</link>
			<dc:creator>brainfrog</dc:creator>
			<guid>https://krcl.ucoz.ru/blog/1_7_funkcii/2010-03-13-9</guid>
			<pubDate>Sat, 13 Mar 2010 15:04:47 GMT</pubDate>
		</item>
		<item>
			<title>1.6. Массивы. Упражнение 1.14.</title>
			<description>&lt;p&gt;&lt;b&gt;Упражнение 1.14.&lt;/b&gt; Напишите программу для вывода гистограммы частот, с которыми встречаются во входном потоке различные символы.&lt;/p&gt;

&lt;p&gt;Не очень хорошо сформулированное задание, написал программу, которая считает пять различных символов:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;comm&quot;&gt;/* вывод гистограммы частот, с которыми встречаются во входном потоке различные символы */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c, j, i;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; characters[5]; &lt;span class=&quot;comm&quot;&gt;// массив количества различных символов&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;
 
 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 0; i &lt; 5; ++i)&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;characters[i] = 0;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((c = getchar()) != EOF) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos;}&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;++characters[0];&lt;/p&gt;
 &lt;...</description>
			<content:encoded>&lt;p&gt;&lt;b&gt;Упражнение 1.14.&lt;/b&gt; Напишите программу для вывода гистограммы частот, с которыми встречаются во входном потоке различные символы.&lt;/p&gt;

&lt;p&gt;Не очень хорошо сформулированное задание, написал программу, которая считает пять различных символов:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;comm&quot;&gt;/* вывод гистограммы частот, с которыми встречаются во входном потоке различные символы */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c, j, i;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; characters[5]; &lt;span class=&quot;comm&quot;&gt;// массив количества различных символов&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;
 
 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 0; i &lt; 5; ++i)&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;characters[i] = 0;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((c = getchar()) != EOF) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos;}&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;++characters[0];&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos;=&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;++characters[1];&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos;[&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;++characters[2];&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos;+&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;++characters[3];&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos;;&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;++characters[4];&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;

 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;comm&quot;&gt;/* выводим гистограмму частот */&lt;/span&gt;&lt;br/&gt;
 printf(&lt;span class=&quot;quote&quot;&gt;&quot;}&amp;#92;t=&amp;#92;t[&amp;#92;t+&amp;#92;t;&amp;#92;t&amp;#92;n&quot;&lt;/span&gt;);&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 0; i &lt; 30; ++i)&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (j = 0; j &lt; 5; ++j) {&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (i &lt; characters[j])&lt;/p&gt;
 &lt;p class=&quot;tab4&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;*&amp;#92;t&quot;&lt;/span&gt;);&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;&lt;span class=&quot;fword&quot;&gt;else&lt;/span&gt; printf(&lt;span class=&quot;quote&quot;&gt;&quot; &amp;#92;t&quot;&lt;/span&gt;);&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (j == 4)&lt;/p&gt;
 &lt;p class=&quot;tab4&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;&amp;#92;n&quot;&lt;/span&gt;);&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;}&lt;/p&gt;
}

&lt;p&gt;Результат выполнения:&lt;/p&gt;

&lt;img src=&quot;https://krcl.ucoz.ru/ex/1/1.14.jpg&quot; border=&quot;0&quot; alt=&quot;Гистограмма частот&quot; title=&quot;Гистограмма частот&quot; /&gt;</content:encoded>
			<link>https://krcl.ucoz.ru/blog/1_6_massivy_uprazhnenie_1_14/2010-03-12-17</link>
			<dc:creator>brainfrog</dc:creator>
			<guid>https://krcl.ucoz.ru/blog/1_6_massivy_uprazhnenie_1_14/2010-03-12-17</guid>
			<pubDate>Fri, 12 Mar 2010 15:03:41 GMT</pubDate>
		</item>
		<item>
			<title>1.6. Массивы. Упражнение 1.13.</title>
			<description>&lt;p&gt;&lt;b&gt;Упражнение 1.13.&lt;/b&gt; Напишите программу для вывода гистограммы длин слов во входном потоке. Построить гистограмму с горизонтальными рядами довольно легко, а вот с вертикальными столбцами труднее.&lt;/p&gt;

&lt;p&gt;Программа для вывода гистограммы с горизонтальными рядами:&lt;/p&gt;

&lt;span class=&quot;comm&quot;&gt;/* вывод гистограммы длин слов во входном потоке */&lt;/span&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; IN 1 &lt;span class=&quot;comm&quot;&gt;/* внутри слова */&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; OUT 0 &lt;span class=&quot;comm&quot;&gt;/* снаружи слова */&lt;/span&gt;&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c, j, i, state;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; wordlength[16]; &lt;span class=&quot;comm&quot;&gt;// массив длин слов&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;
 
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 0; i &lt; 16; ++i)&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;wordlength[i] = 0;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;i = 0;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;...</description>
			<content:encoded>&lt;p&gt;&lt;b&gt;Упражнение 1.13.&lt;/b&gt; Напишите программу для вывода гистограммы длин слов во входном потоке. Построить гистограмму с горизонтальными рядами довольно легко, а вот с вертикальными столбцами труднее.&lt;/p&gt;

&lt;p&gt;Программа для вывода гистограммы с горизонтальными рядами:&lt;/p&gt;

&lt;span class=&quot;comm&quot;&gt;/* вывод гистограммы длин слов во входном потоке */&lt;/span&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; IN 1 &lt;span class=&quot;comm&quot;&gt;/* внутри слова */&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; OUT 0 &lt;span class=&quot;comm&quot;&gt;/* снаружи слова */&lt;/span&gt;&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c, j, i, state;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; wordlength[16]; &lt;span class=&quot;comm&quot;&gt;// массив длин слов&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;
 
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 0; i &lt; 16; ++i)&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;wordlength[i] = 0;&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;i = 0;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((c = getchar()) != EOF) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;state = IN;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos; &apos;&lt;/span&gt; || c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt; || c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;t&apos;&lt;/span&gt; || c == &lt;span class=&quot;quote&quot;&gt;&apos;.&apos;&lt;/span&gt; || c == &lt;span class=&quot;quote&quot;&gt;&apos;,&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;state = OUT;&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;else if&lt;/span&gt; (state == OUT)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;state = IN;&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;comm&quot;&gt;/* если находимся внутри слова, считаем количество символов в слове */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (state == IN) &lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;++i;&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;comm&quot;&gt;/* если слово заканчивается, увеличиваем количество слов с длиной i */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (state == OUT &amp;&amp; i != 0) {&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;++wordlength[i];&lt;br/&gt;
 i = 0;&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;}&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;comm&quot;&gt;/* выводим гистограмму длин слов */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 1; i &lt; 16; ++i) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot; %d&amp;#92;t&quot;&lt;/span&gt;, i);&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (j = 0; j &lt; wordlength[i]; ++j)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;*&quot;&lt;/span&gt;);&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;&amp;#92;n&quot;&lt;/span&gt;);&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;/p&gt;
}

&lt;p&gt;Результат выполнения:&lt;/p&gt;

&lt;img src=&quot;https://krcl.ucoz.ru/ex/1/1.13.jpg&quot; border=&quot;0&quot; alt=&quot;Горизонтальная гистограмма длин слов&quot; title=&quot;Горизонтальная гистограмма длин слов&quot; /&gt;

&lt;p&gt;Вывод гистограммы с вертикальными столбцами будет выглядеть так:&lt;/p&gt;

 &lt;span class=&quot;comm&quot;&gt;/* вывод вертикальной гистограммы */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 1; i &lt; 16; ++i) &lt;span class=&quot;comm&quot;&gt;// выводим ряд длин слов&lt;/span&gt;
 &lt;p class=&quot;tab&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot; %d&quot;&lt;/span&gt;, i);&lt;/p&gt;
 printf(&quot;&amp;#92;n&quot;);&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (i = 0; i &lt; 16; ++i)
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;for&lt;/span&gt; (j = 1; j &lt; 16; ++j) {&lt;br/&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (j &lt; 10)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (i &lt; wordlength[j])&lt;/p&gt;
 &lt;p class=&quot;tab4&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot; *&quot;&lt;/span&gt;);&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;&lt;span class=&quot;fword&quot;&gt;else&lt;/span&gt; printf(&lt;span class=&quot;quote&quot;&gt;&quot; &quot;&lt;/span&gt;);&lt;/p&gt;
&lt;span class=&quot;comm&quot;&gt;/* если длина слова - двузначное число, добавляем пробелы для выравнивания гистограммы */&lt;/span&gt;&lt;br/&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (j &gt; 9)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (i &lt; wordlength[j])&lt;/p&gt;
 &lt;p class=&quot;tab4&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot; * &quot;&lt;/span&gt;);&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;&lt;span class=&quot;fword&quot;&gt;else&lt;/span&gt; printf(&lt;span class=&quot;quote&quot;&gt;&quot; &quot;&lt;/span&gt;);&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (j == 15)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;&amp;#92;n&quot;&lt;/span&gt;);&lt;/p&gt;
 }

&lt;p&gt;Результат выполнения:&lt;/p&gt;

&lt;img src=&quot;https://krcl.ucoz.ru/ex/1/1.13v.jpg&quot; border=&quot;0&quot; alt=&quot;Вертикальная гистограмма длин слов&quot; title=&quot;Вертикальная гистограмма длин слов&quot; /&gt;</content:encoded>
			<link>https://krcl.ucoz.ru/blog/1_6_massivy/2010-03-11-8</link>
			<dc:creator>brainfrog</dc:creator>
			<guid>https://krcl.ucoz.ru/blog/1_6_massivy/2010-03-11-8</guid>
			<pubDate>Thu, 11 Mar 2010 15:02:05 GMT</pubDate>
		</item>
		<item>
			<title>1.5.4. Подсчет слов. Упражнение 1.12.</title>
			<description>&lt;p&gt;&lt;b&gt;Упражнение 1.12.&lt;/b&gt; Напишите программу для вывода входного потока по одному слову в строке.&lt;/p&gt;

&lt;p&gt;За основу берем предыдущую программу, немного убираем и немного дополняем, получаем следующее:&lt;/p&gt;

&lt;p&gt; &lt;span class=&quot;comm&quot;&gt;/* вывод входного потока по одному слову в строке */&lt;/span&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; IN 1 &lt;span class=&quot;comm&quot;&gt;/* внутри слова */&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; OUT 0 &lt;span class=&quot;comm&quot;&gt;/* снаружи слова */&lt;/span&gt;&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c, state; &lt;span class=&quot;comm&quot;&gt;// символ, состояние&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;
 
 state = OUT;&lt;br/&gt;
 while ((c = getchar()) != EOF) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos; &apos;&lt;/span&gt; || c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt; || c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;t&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;state = OUT;&lt;/p&gt;
 &lt;p class=&quot;...</description>
			<content:encoded>&lt;p&gt;&lt;b&gt;Упражнение 1.12.&lt;/b&gt; Напишите программу для вывода входного потока по одному слову в строке.&lt;/p&gt;

&lt;p&gt;За основу берем предыдущую программу, немного убираем и немного дополняем, получаем следующее:&lt;/p&gt;

&lt;p&gt; &lt;span class=&quot;comm&quot;&gt;/* вывод входного потока по одному слову в строке */&lt;/span&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; IN 1 &lt;span class=&quot;comm&quot;&gt;/* внутри слова */&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; OUT 0 &lt;span class=&quot;comm&quot;&gt;/* снаружи слова */&lt;/span&gt;&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c, state; &lt;span class=&quot;comm&quot;&gt;// символ, состояние&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;
 
 state = OUT;&lt;br/&gt;
 while ((c = getchar()) != EOF) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos; &apos;&lt;/span&gt; || c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt; || c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;t&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;state = OUT;&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;else if&lt;/span&gt; (state == OUT) {&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;putchar(&lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt;);&lt;br/&gt;
 state = IN;&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;}&lt;/br&gt;
 putchar(c);&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;/p&gt;
}

&lt;p&gt;Результат выполнения:&lt;/p&gt;

&lt;img src=&quot;https://krcl.ucoz.ru/ex/1/1.12.jpg&quot; border=&quot;0&quot; alt=&quot;По одному слову&quot; title=&quot;По одному слову&quot; /&gt;</content:encoded>
			<link>https://krcl.ucoz.ru/blog/1_5_4_podschet_slov_uprazhnenie_1_12/2010-03-10-16</link>
			<dc:creator>brainfrog</dc:creator>
			<guid>https://krcl.ucoz.ru/blog/1_5_4_podschet_slov_uprazhnenie_1_12/2010-03-10-16</guid>
			<pubDate>Wed, 10 Mar 2010 15:01:10 GMT</pubDate>
		</item>
		<item>
			<title>1.5.4. Подсчет слов. Упражнение 1.11.</title>
			<description>&lt;p&gt;&lt;b&gt;Упражнение 1.11.&lt;/b&gt; Как бы вы протестировали программу подсчета слов? Какого рода входной поток скорее всего выявит ошибки в программе (если таковые есть)?&lt;/p&gt;

&lt;p&gt;Дана программа:&lt;/p&gt;

&lt;p&gt; &lt;span class=&quot;comm&quot;&gt;/* подсчет строк, слов и символов во входном потоке */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; IN 1 &lt;span class=&quot;comm&quot;&gt;/* внутри слова */&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; OUT 0 &lt;span class=&quot;comm&quot;&gt;/* снаружи слова */&lt;/span&gt;&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c, state; &lt;span class=&quot;comm&quot;&gt;// символ, состояние&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; nl, nw, nc; &lt;span class=&quot;comm&quot;&gt;// новая строка, новое слово, новый символ&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;
 
 state = OUT;&lt;br/&gt;
 nl = nw = nc = 0;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((c = getchar()) != EOF) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;++nc;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c ...</description>
			<content:encoded>&lt;p&gt;&lt;b&gt;Упражнение 1.11.&lt;/b&gt; Как бы вы протестировали программу подсчета слов? Какого рода входной поток скорее всего выявит ошибки в программе (если таковые есть)?&lt;/p&gt;

&lt;p&gt;Дана программа:&lt;/p&gt;

&lt;p&gt; &lt;span class=&quot;comm&quot;&gt;/* подсчет строк, слов и символов во входном потоке */&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; IN 1 &lt;span class=&quot;comm&quot;&gt;/* внутри слова */&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;fword&quot;&gt;#define&lt;/span&gt; OUT 0 &lt;span class=&quot;comm&quot;&gt;/* снаружи слова */&lt;/span&gt;&lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c, state; &lt;span class=&quot;comm&quot;&gt;// символ, состояние&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; nl, nw, nc; &lt;span class=&quot;comm&quot;&gt;// новая строка, новое слово, новый символ&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;
 
 state = OUT;&lt;br/&gt;
 nl = nw = nc = 0;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((c = getchar()) != EOF) {&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;++nc;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;++nl;&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt; (c == &lt;span class=&quot;quote&quot;&gt;&apos; &apos;&lt;/span&gt; || c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;n&apos;&lt;/span&gt; || c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;t&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;state = OUT;&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;else if&lt;/span&gt; (state == OUT) {&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;state = IN;&lt;br/&gt;
 ++nw;&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;}&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;br/&gt;
 printf(&lt;span class=&quot;quote&quot;&gt;&quot;&amp;#92;n%d new characters&amp;#92;n%d new lines&amp;#92;n%d new words&amp;#92;n&quot;&lt;/span&gt;, nc, nl, nw);&lt;/p&gt;
}

&lt;p&gt;Тестируем программу:&lt;/p&gt;

&lt;img src=&quot;https://krcl.ucoz.ru/ex/1/1.11.jpg&quot; border=&quot;0&quot; alt=&quot;Тест&quot; title=&quot;Тест&quot; /&gt;

&lt;p&gt;Программа утверждает, что мы напечатали 5 слов, на самом же деле слов здесь нет.&lt;br/&gt;
Вывод: ошибки выявит числовой входной поток или поток специальных символов.&lt;/p&gt;</content:encoded>
			<link>https://krcl.ucoz.ru/blog/1_5_4_podschet_slov/2010-03-09-7</link>
			<dc:creator>brainfrog</dc:creator>
			<guid>https://krcl.ucoz.ru/blog/1_5_4_podschet_slov/2010-03-09-7</guid>
			<pubDate>Tue, 09 Mar 2010 18:15:29 GMT</pubDate>
		</item>
		<item>
			<title>1.5.3. Подсчет строк. Упражнение 1.10.</title>
			<description>&lt;p&gt;&lt;b&gt;Упражнение 1.10.&lt;/b&gt; Напишите программу для копирования входного потока в выходной с заменой знаков табуляции на &amp;#92;t, символов возврата назад (Backspace) на &amp;#92;b, а обратных косых черт - на &amp;#92;&amp;#92;. Это сделает табуляции и символы возврата легко читаемыми в потоке.&lt;/p&gt;

&lt;p&gt; &lt;span class=&quot;comm&quot;&gt;/* замена знаков табуляции на &amp;#92;t, символов возврата назад на &amp;#92;b, обратных косых черт на &amp;#92;&amp;#92; */&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt; &lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c; &lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((c = getchar()) != EOF) { &lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;comm&quot;&gt;/* если c - табуляция, печатаем &amp;#92;t */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt;(c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;t&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;&amp;#92;&amp;#92;t&quot;&lt;/span&gt;);&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;comm&quot;&gt;/* если c - символ возврата назад,...</description>
			<content:encoded>&lt;p&gt;&lt;b&gt;Упражнение 1.10.&lt;/b&gt; Напишите программу для копирования входного потока в выходной с заменой знаков табуляции на &amp;#92;t, символов возврата назад (Backspace) на &amp;#92;b, а обратных косых черт - на &amp;#92;&amp;#92;. Это сделает табуляции и символы возврата легко читаемыми в потоке.&lt;/p&gt;

&lt;p&gt; &lt;span class=&quot;comm&quot;&gt;/* замена знаков табуляции на &amp;#92;t, символов возврата назад на &amp;#92;b, обратных косых черт на &amp;#92;&amp;#92; */&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;fword&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;&quot;stdafx.h&quot;&lt;/span&gt; &lt;/p&gt;

&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; main()&lt;br/&gt;
{&lt;br/&gt;
 &lt;p class=&quot;tab&quot;&gt;&lt;span class=&quot;fword&quot;&gt;int&lt;/span&gt; c; &lt;br/&gt;&lt;br/&gt;

 &lt;span class=&quot;fword&quot;&gt;while&lt;/span&gt; ((c = getchar()) != EOF) { &lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;comm&quot;&gt;/* если c - табуляция, печатаем &amp;#92;t */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt;(c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;t&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;&amp;#92;&amp;#92;t&quot;&lt;/span&gt;);&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;comm&quot;&gt;/* если c - символ возврата назад, печатаем &amp;#92;b */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt;(c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;b&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;&amp;#92;&amp;#92;b&quot;&lt;/span&gt;);&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;comm&quot;&gt;/* если c - обратная косая черта, печатаем &amp;#92;&amp;#92; */&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt;(c == &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;&amp;#92;&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;printf(&lt;span class=&quot;quote&quot;&gt;&quot;&amp;#92;&amp;#92; &amp;#92;b&amp;#92;&amp;#92;&quot;&lt;/span&gt;);&lt;/p&gt;
 &lt;p class=&quot;tab2&quot;&gt;&lt;span class=&quot;fword&quot;&gt;if&lt;/span&gt;(c != &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;t&apos;&lt;/span&gt; &amp;&amp; c != &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;b&apos;&lt;/span&gt; &amp;&amp; c != &lt;span class=&quot;quote&quot;&gt;&apos;&amp;#92;&amp;#92;&apos;&lt;/span&gt;)&lt;/p&gt;
 &lt;p class=&quot;tab3&quot;&gt;putchar(c);&lt;/p&gt;
 &lt;p class=&quot;tab&quot;&gt;}&lt;/p&gt;
}

&lt;p&gt; Результат выполнения: &lt;/p&gt; 

&lt;img src=&quot;https://krcl.ucoz.ru/ex/1/1.10.jpg&quot; border=&quot;0&quot; alt=&quot;Замена&quot; title=&quot;Замена&quot; /&gt;</content:encoded>
			<link>https://krcl.ucoz.ru/blog/1_5_3_podschet_strok_uprazhnenie_1_10/2010-03-06-15</link>
			<dc:creator>brainfrog</dc:creator>
			<guid>https://krcl.ucoz.ru/blog/1_5_3_podschet_strok_uprazhnenie_1_10/2010-03-06-15</guid>
			<pubDate>Sat, 06 Mar 2010 14:58:01 GMT</pubDate>
		</item>
	</channel>
</rss>