7.7 – Введение в циклы и инструкции while
Добавлено 29 мая 2021 в 13:05
Введение в циклы
А теперь начинается самое интересное – в следующем наборе уроков мы пройдемся по циклам. Циклы – это конструкции управления порядком выполнения программы, которые позволяют фрагменту кода многократно выполняться до тех пор, пока не будет выполнено какое-либо условие. Циклы добавляют в ваш набор инструментов программирования значительную гибкость, позволяя делать многие вещи, которые в противном случае были бы сложными.
Например, предположим, что вы хотите вывести все числа от 1 до 10. Без циклов вы можете попробовать что-то вроде этого:
#include <iostream> int main() { std::cout << "1 2 3 4 5 6 7 8 9 10"; std::cout << " done!"; return 0; }
Хотя это выполнимо, но всё усложняется, когда вы хотите напечатать больше чисел: что, если вы хотите напечатать все числа от 1 до 1000? А это совсем немного! Но такую программу возможно написать, потому что во время компиляции мы знаем, сколько чисел мы хотим напечатать.
Теперь давайте немного изменим требования. Что, если бы мы хотели попросить пользователя ввести число, а затем распечатать все числа от 1 до числа, введенного пользователем? Число, которое введет пользователь, неизвестно во время компиляции. Итак, как мы можем решить эту проблему?
Инструкции
while
Инструкция while
(также называемая циклом while
) является самым простым из трех типов циклов, предоставляемых C++, и имеет определение, очень похожее на определение оператора if
:
while (условие) инструкция;
Инструкция while
объявляется с помощью ключевого слова while
. При выполнении инструкции while
вычисляется условие. Если условие истинно, выполняется связанная инструкция.
Однако, в отличие от оператора if
, после завершения выполнения инструкции управление возвращается в начало оператора while
, и процесс повторяется. Это означает, что оператор while
будет продолжать цикл до тех пор, пока условие будет истинным.
Давайте посмотрим на простой цикл while
, который выводит все числа от 1 до 10:
#include <iostream> int main() { int count{ 1 }; while (count <= 10) { std::cout << count << ' '; ++count; } std::cout << "done!"; return 0; }
Эта программа выводит:
1 2 3 4 5 6 7 8 9 10 done!
Давайте подробнее рассмотрим, что делает эта программа. Сначала счетчик count
инициализируется значением 1, которое является первым числом, которое мы напечатаем. Условие count <= 10
истинно, поэтому инструкция выполняется. В этом случае наша инструкция – это блок, поэтому все инструкции в этом блоке будут выполнены. Первая инструкция в блоке печатает 1 и пробел, а вторая увеличивает
до 2. Теперь управление возвращается к началу оператора while
, и снова вычисляется условие. 2 <= 10
вычисляется как true
, поэтому блок кода выполняется снова. Цикл будет повторяться до тех пор, пока count
не станет равен 11, после чего значение 11 <= 10
будет ложным, и инструкция, связанная с циклом, будет пропущена. На этом выполнение цикла заканчивается.
Хотя эта программа представляет собой немного больше кода, чем набор всех чисел от 1 до 10, подумайте, насколько легко было бы изменить эту программу для печати всех чисел от 1 до 1000: всё, что вам нужно сделать, это изменить count <= 10
count <= 1000
.Инструкции
while
, которые изначально вычисляются как ложныеОбратите внимание, что если условие изначально вычисляется как ложное, связанная инструкция не будет выполняться вообще. Рассмотрим следующую программу:
#include <iostream> int main() { int count{ 15 }; while (count <= 10) { std::cout << count << ' '; ++count; } std::cout << "done!"; return 0; }
Условие 15 <= 10
вычисляется как false
, поэтому связанная инструкция пропускается. Программа продолжается, и единственное, что будет напечатано – это «done!».
Бесконечные циклы
И наоборот, если условное выражение всегда истинно, цикл while
будет выполняться вечно. Это называется бесконечным циклом
#include <iostream> int main() { int count{ 1 }; while (count <= 10) // это условие никогда не будет ложным { std::cout << count << ' '; // поэтому эта строка будет выполняться многократно } return 0; // эта строка никогда не будет выполнена }
Поскольку в этой программе count
никогда не увеличивается, условие count <= 10
всегда будет истинным. Следовательно, цикл никогда не завершится, и программа будет печатать «1 1 1 1 1» … всегда.
Преднамеренные бесконечные циклы
Мы можем намеренно объявить бесконечный цикл следующим образом:
while (true) { // этот цикл будет выполняться вечно }
Единственный способ выйти из бесконечного цикла – использовать инструкцию return
, инструкцию break
, инструкцию exit
, инструкцию goto
, сгенерировать исключение, или пользователю убить программу.
Вот глупый пример, демонстрирующий это:
#include <iostream> int main() { while (true) // бесконечный цикл { std::cout << "Loop again (y/n)? "; char c{}; std::cin >> c; if (c == 'n') return 0; } return 0; }
Эта программа будет непрерывно повторяться до тех пор, пока пользователь не введет n в качестве входных данных, после чего оператор if
вычислит значение true
,и связанный с ним return 0;
вызовет выход из функции main()
, завершив программу.
Такой цикл часто можно увидеть в приложениях веб-серверов, которые работают непрерывно и обслуживают веб-запросы.
Для преднамеренных бесконечных циклов используйте while (true)
.
Переменные цикла
Часто нам нужно, чтобы цикл выполнялся определенное количество раз. Для этого обычно используется переменная цикла, часто называемая счетчиком. Переменная цикла – это целочисленное значение, которое используется для подсчета количества выполнений цикла. В приведенных выше примерах переменной цикла является переменная count
.
Переменным цикла часто дают простые имена, такие как i
, j
или k
. Однако если вы хотите знать, где в вашей программе используется переменная цикла, и вы используете функцию поиска по i
, j
или k
, функция поиска вернет половину вашей программы! По этой причине некоторые разработчики предпочитают использовать такие имена переменных цикла, как iii
, jjj
или kkk
. Поскольку эти имена более уникальны, это значительно упрощает поиск переменных цикла и помогает им выделяться как переменные цикла. Еще лучше – использовать «настоящие» имена переменных, такие как count
, или имя, которое дает более подробную информацию о том, что вы подсчитываете (например, userCount
).
Переменные цикла должны быть со знаком
Переменные цикла почти всегда должны быть со знаком, поскольку целые числа без знака могут привести к неожиданным проблемам. Рассмотрим следующий код:
#include <iostream> int main() { unsigned int count{ 10 }; // счетчик от 10 до 0 while (count >= 0) { if (count == 0) { std::cout << "blastoff!"; } else { std::cout << count << ' '; } --count; } return 0; }
Взгляните на приведенный выше пример и посмотрите, сможете ли вы обнаружить ошибку. Она не очень очевидна.
Оказывается, эта программа представляет собой бесконечный цикл. Она начинается, как и предполагалось, с печати 10 9 8 7 6 5 4 3 2 1 blastoff!
, но затем сходит с рельсов и начинает обратный отсчет с 4294967295. Почему? Потому что условие циклаcount >= 0
никогда не будет ложным! Когда count
равен 0, условие 0 >= 0
истинно. Затем выполняется --count
, и count
переходит к 4294967295 (предполагается, что int
занимает 32 бита). И поскольку 4294967295 >= 0
истинно, программа продолжается. Поскольку count
не имеет знака, он никогда не может быть отрицательным, а поскольку он никогда не может быть отрицательным, цикл не завершится.Лучшая практика
Переменные цикла должны иметь тип (signed
) int
.
Выполнение чего-то при каждой N-ой итерации
Каждый раз, когда цикл выполняется, это называется итерацией.
Часто мы хотим делать что-то на каждой 2-й, 3-й или 4-й итерации, например, выводить символ новой строки. Это легко сделать с помощью оператора взятия остатка от деления для нашего счетчика:
#include <iostream> // Перебираем все числа от 1 до 50 int main() { int count{ 1 }; while (count <= 50) { // выводим число (для форматирования добавляем 0 перед числами меньше 10) if (count < 10) { std::cout << '0'; } std::cout << count << ' '; // если переменная цикла делится на 10, печатаем символ новой строки if (count % 10 == 0) { std::cout << '\n'; } // увеличиваем счетчик цикла ++count; } return 0; }
Эта программа дает следующий результат:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
Вложенные циклы
Циклы также возможно вкладывать внутрь других циклов. В следующем примере внутренний и внешний циклы имеют свои собственные счетчики. Однако обратите внимание, что условное выражение внутреннего цикла также использует счетчик внешнего цикла!
#include <iostream> // Цикл от 1 до 5 int main() { int outer{ 1 }; while (outer <= 5) { // цикл от 1 до outer int inner{ 1 }; while (inner <= outer) { std::cout << inner << ' '; ++inner; } // выводим символ новой строки в конце каждой строки std::cout << '\n'; ++outer; } return 0; }
Эта программа печатает:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
Небольшой тест
Вопрос 1
Почему в приведенной выше программе переменная inner
объявляется внутри блока while
, а не сразу после объявления outer
?
Ответ
Переменная
inner
объявляется внутри блокаwhile
, поэтому она создается (и повторно инициализируется значением 1) каждый раз при выполнении внешнего цикла. Если бы переменнаяinner
была объявлена перед внешним цикломwhile
, ее значение никогда не было бы сброшено до 1, или нам пришлось бы делать это с помощью оператора присваивания. Кроме того, поскольку переменнаяinner
используется только внутри блока внешнего циклаwhile
, имеет смысл объявить ее там. Помните, что мы объявляем переменные в минимально возможной области видимости!
Вопрос 2
Напишите программу, которая печатает буквы от a до z вместе с их кодами ASCII.
Подсказка
Чтобы напечатать символы как целые числа, вы должны использовать
static_cast
.
Ответ
#include <iostream> int main() { char myChar{ 'a' }; while (myChar <= 'z') { std::cout << myChar << ' ' << static_cast<int>(myChar) << '\n'; ++myChar; } return 0; }
Вопрос 3
Инвертируйте пример вложенных циклов, чтобы он напечатал следующее:
5 4 3 2 1 4 3 2 1 3 2 1 2 1 1
Ответ
#include <iostream> // Цикл от 5 до 1 int main() { int outer{ 5 }; while (outer >= 1) { // цикл от inner до 1 int inner{ outer }; while (inner >= 1) { std::cout << inner-- << ' '; } // выводим символ новой строки в конце каждой строки std::cout << '\n'; --outer; } return 0; }
Вопрос 4
Теперь напечатайте числа так:
1 2 1 3 2 1 4 3 2 1 5 4 3 2 1
Подсказка: сначала выясните, как печатать вот так:
X X X X 1 X X X 2 1 X X 3 2 1 X 4 3 2 1 5 4 3 2 1
Ответ
#include <iostream> int main() { // Есть 5 строк, мы можем выполнять цикл от 1 до 5 int outer{ 1 }; while (outer <= 5) { // Элементы строки отображаются в порядке убывания, поэтому начинаем с 5 и идем к 1 int inner{ 5 }; while (inner >= 1) { // Первое число в любой строке совпадает с номером строки // Значит, число должно быть напечатано, только если оно <= номеру строки, // в противном случае - пробел if (inner <= outer) std::cout << inner << ' '; else std::cout << " "; // дополнительные пробелы исключительно для форматирования --inner; } // Строка напечатана, перейти к следующей строке std::cout << '\n'; ++outer; } return 0; }
Оригинал статьи:
- 7. 7 — Intro to loops and while statements
Теги
C++ / CppLearnCppwhileДля начинающихОбучениеПрограммированиеЦиклНазад
Оглавление
Вперед
НОУ ИНТУИТ | Лекция | Управляющие операторы. Структуры данных языка С
< Лекция 6 || Лекция 3: 12345
Аннотация: В данной лекции рассматриваются основные операторы языка: ветвления, циклы, передача управления, а также типы и структуры данных, унаследованные из языка С: указатели, массивы, строки, перечисления, структуры и объединения
Ключевые слова: теория программирования, выход, структурная схема, присваивание, логические операции, фигурные скобки, вычисление выражения, переключатель, целочисленный тип, switch, break, операторы цикла, цикла, тело цикла, целое число, итерация, ПО, безусловный переход, значение функции, составной оператор, оператор передачи управления, операторы перехода, continue, goto, throw, операторы, идентификатор, область видимости, функция, оператор безусловного перехода, вложенные циклы, время выполнения, деление, переполнение, обработка исключений, программа, значение, EPS, точность, указатель, типизированный указатель, равенство, неравенство, арифметическая операция, преобразование типов, параметр функции, адрес, сегменты, исполняемый код, int, double, битовые поля, переменная, константа, область действия, динамическая переменная, освобождение памяти, free, сложение, вычитание, инкремент, декремент, приведение типов, static_cast, void, операция присваивания, структура данных, разность, байт, приоритет операций, скалярное выражение, неименованная константа, ссылка, синоним, псевдоним, память, операции, передача параметров, ссылочный тип, инициализация, external, хранение данных, массив, компилятор, компиляция, входные данные, динамический массив, размерность массива, сумма элементов массива, размерность, FLOAT, динамические массивы, new, индекс, матрица, умножение, массив символов, нуль-символ, управляющая последовательность, длина, строковый, заголовочный файл, CSTRING, вывод, ввод/вывод, стандартная библиотека, подстрока, длина строки, пароль, копирование, именованная константа, инициализатор, список, описатели, элемент списка, структурный тип
Базовые конструкции структурного программирования
intuit.ru/2010/edi»>Презентацию к лекции Вы можете скачать здесь.В теории программирования доказано, что программу для решения задачи любой сложности можно составить только из трех структур, называемых следованием, ветвлением и циклом. Их называют базовыми конструкциями структурного программирования.
Следованием называется конструкция, представляющая собой последовательное выполнение двух или более операторов (простых или составных).
Ветвление задает выполнение либо одного, либо другого оператора в зависимости от выполнения какого-либо условия.
Цикл задает многократное выполнение оператора.
Особенностью базовых конструкций является то, что любая из них имеет только один вход и один выход (см. рис. 3.1), поэтому конструкции могут вкладываться друг в друга произвольным образом.
Рис. 3.1. Базовые конструкции структурного программирования
Целью использования базовых конструкций является получение программы простой структуры. Такую программу легко читать, отлаживать и при необходимости вносить в нее изменения.
Оператор «выражение»
Любое выражение, завершающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении выражения. Частным случаем выражения является пустой оператор ; (он используется, когда по синтаксису оператор требуется, а по смыслу — нет). Примеры:
i++; //выполняется операция инкремента a *= b + c; //выполняется умножение с присваиванием
Операторы ветвления
Условный оператор if
Условный оператор if используется для разветвления процесса вычислений на два направления. Структурная схема оператора приведена на рис. 3.1. Формат оператора:
if ( выражение ) оператор_1; [else оператор_2;]
Сначала вычисляется выражение, которое может иметь арифметический тип или тип указателя. Если оно не равно нулю, выполняется первый оператор, иначе — второй. После этого управление передается на оператор, следующий за условным. Одна из ветвей может отсутствовать.
Если в какой-либо ветви требуется выполнить несколько операторов, их необходимо заключить в блок. Блок может содержать любые операторы, в том числе описания и другие условные операторы.
Примеры:
if (a<0) b = 1; // 1 if (a<b && (a>d || a==0)) b++; else {b *= a; a = 0;} // 2 if (a<b) {if (a<c) m = a; else m = c;} else {if (b<c) m = b; else m = c;} // 3intuit.ru/2010/edi»>В примере 1 отсутствует ветвь else. Подобная конструкция называется «пропуск оператора», поскольку присваивание либо выполняется, либо пропускается в зависимости от выполнения условия.
Если требуется проверить несколько условий, их объединяют знаками логических операций. Например, выражение в примере 2 будет истинно в том случае, если выполнится одновременно условие a<b и одно из условий в скобках. Если опустить внутренние скобки, будет выполнено сначала логическое И, а потом — ИЛИ.
Оператор в примере 3 вычисляет наименьшее значение из трех переменных. Фигурные скобки в данном случае не обязательны.
Рис. 3.2. Мишень
Пример. Производится выстрел по мишени, изображенной на рис. 3.2. Определить количество очков.
#include <iostream> using namespace std; int main() {float x, y; int kol; cout << "Введите координаты выстрела\n"; cin >> x >> y; if ( x*x + y*y < 1 ) kol = 2; else if ( x*x + y*y < 4 ) kol = 1; else kol = 0; cout << "\n Очков: " << kol; }
Оператор switch
Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Формат оператора:
switch ( выражение ){ case константное_выражение_1: операторы_1; case константное_выражение_2: операторы 2; ... case константное_выражение_n: операторы n; [default: операторы ;]}
Выполнение оператора начинается с вычисления выражения (оно должно быть целочисленным), а затем управление передается операторам, помеченным константным выражением, значение которого совпало с вычисленным, после чего последовательно выполняются все остальные ветви, если выход из переключателя явно не указан.
Все константные выражения должны иметь разные значения, но быть одного и того же целочисленного типа. Несколько меток могут следовать подряд. Если совпадения не произошло, выполняются операторы, расположенные после слова default (а при его отсутствии управление передается следующему за switch оператору).
Пример (программа реализует простейший калькулятор на 4 действия):
#include <iostream> using namespace std; int main() { int a, b, res; char op; cout << "\nВведите 1й операнд : "; cin >> a; cout << "\nВведите знак операции : "; cin >> op; cout << "\nВведите 2й операнд : "; cin >> b; bool f = true; switch (op) { case '+': res = a + b; break; case '-': res = a - b; break; case '*': res = a * b; break; case '/': res = a / b; break; default : cout <<"\nНеизвестная операция"; f = false; } if (f) cout << "\nРезультат : " << res;}intuit.ru/2010/edi»>Выход из переключателя обычно выполняется с помощью операторов break или return.
Дальше >>
< Лекция 6 || Лекция 3: 12345
Цикл While в C
Программирование на C2 месяца назад
от Ayesha Sajid
Цикл while в языке программирования C выполняет определенную задачу до тех пор, пока заданное условие не будет выполнено. Этот цикл имеет условие итерации и итератор, который увеличивает или уменьшает (в зависимости от логики вашего кода) на каждой итерации цикла. В этом руководстве мы поговорим о работе цикла while в языке программирования Си.
Использование цикла while в языке программирования C
Мы попытались объяснить использование цикла while в языке программирования C с помощью следующих трех примеров:
Пример № 1: Печать последовательности чисел от 1 до 10 в этом примере с помощью цикла while в C. Сценарий, показанный на следующем рисунке, был разработан для этой цели:
В этой программе мы определили целочисленную переменную «num» и присвоили цифра «1» к нему. Затем, используя цикл while, мы увеличивали эту переменную на каждой итерации до «10», чтобы на терминал можно было напечатать ряд чисел от 1 до 10.
Затем мы создали объектный файл этой программы с помощью следующей команды:
$ gcc while.c –o while
Чтобы выполнить этот объектный файл, мы использовали следующую команду:
$ ./while
Последовательность чисел показана на следующем изображении:
Пример № 2: бесконечный цикл while
Вы также можете сделать цикл while бесконечным, используя его, как показано в следующем сценарии C:
Оператор «пока(1)» в этом цикле оценивается как истина на каждой итерации цикла, из-за чего тело этого цикла будет выполняться всегда, т. е. на терминал будет выведено сообщение «Hello World» бесконечно много раз.
Это может быть подтверждено следующим выводом:
Примечание. Чтобы разорвать этот цикл или принудительно остановить выполнение программы, в этом случае вам нужно будет нажать Ctrl + C в вашем терминале.
Пример № 3: цикл While без условия итерации
Цикл while в языке программирования C должен иметь правильное условие итерации. В следующем примере сценария мы попытаемся выяснить, что произойдет, если мы пропустим это условие итерации.
В этом примере мы просто удалили условие итерации из программы на C, используемой во втором примере.
Когда мы скомпилировали эту программу на C, мы получили ошибку времени компиляции, предлагающую нам предоставить правильное условие итерации, как показано на следующем рисунке:
Заключение
В этой статье мы попытались исследовать работу цикла while в языке программирования C в трех различных аспектах. Поняв эти случаи, вы сможете легко использовать цикл while при написании своих программ на C.
Об авторе
Айеша Саджид
Айеша Саджид получила степень бакалавра в области компьютерных наук и степень магистра в области информационной безопасности. По профессии она пишет технические материалы и имеет около четырех лет опыта работы с Windows и различными версиями операционной системы Linux. Она также проявляет большой интерес к изучению последних тенденций в области технологий.
Посмотреть все сообщения
While Loop In C: Учебное пособие по C на хинди #14
Зачем изучать язык программирования C? : Учебное пособие по C на хинди #1
Что такое кодирование и язык программирования C? : Учебное пособие по C на хинди #2
Установка и настройка кода VS с помощью компилятора C: Учебное пособие по C на хинди #3
Базовая структура программы на языке C на хинди: Учебное пособие по C на хинди #4
Основной синтаксис программы на языке C: C Учебное пособие на хинди #5
Переменные и типы данных в C: Учебное пособие по C на хинди #6
Операторы на C: Учебное пособие по C на хинди #7
Упражнение по программированию на C 1. Таблицы умножения: Учебное пособие по C на хинди #8
Спецификаторы формата C и escape-последовательности с примерами: Учебное пособие по C на хинди #9
If Else Control Операторы на C: Учебное пособие по C на хинди #10
Switch Case Control Операторы на C: Учебное пособие по C на хинди #11
Циклы на C: Учебное пособие по C на хинди #12
Do While Цикл в C: Учебное пособие по C на хинди # 13
Цикл в то время как в C: Учебное пособие по C на хинди # 14
Цикл For In C: Учебник C на хинди #15
Операторы Break and Continue на C: Учебник C на хинди #16
Оператор Goto на C: Учебник C на хинди #17
Приведение типов на C: Учебник C In Hindi #18
Функции на C: Учебник по C на хинди #19
C Упражнение 1: Решение таблицы умножения + Shoutouts: Учебник по C на хинди #20
Рекурсивные функции: Рекурсия на C: Учебник по C на хинди #21
C Упражнение 2: Единицы и преобразования: Учебное пособие по C на хинди #22
Массивы в C: Учебник по C на хинди #23
Упражнение 2: Решение + Shoutouts: Учебник по C на хинди #24
Упражнение 3 Рекурсии: Учебник по C на хинди #25
Указатели на C: Учебник по C на хинди #26
Массивы и арифметика указателей в C: Учебное пособие по C на хинди #27
Упражнение 3 О рекурсиях: решение + выкрики: Учебное пособие по C на хинди #28
Всегда ли рекурсия хороша? : Учебное пособие по C на хинди #29
Упражнение 4. Печать узоров звезд на языке C: Учебное пособие по C на хинди #30
Вызов по значению и вызов по ссылке на языке C: Учебное пособие по C на хинди #31
Передача массивов в качестве аргументов функции: Учебное пособие по C на хинди #32
Образец звезды на языке C. Упражнение 4 Решение: Учебное пособие по C на хинди #33
Строки в C: Учебное пособие по C на хинди #34
Строковые функции на C и библиотека string.h: Учебное пособие по C на хинди #35
Обращение массива на C. Упражнение 5: Учебное пособие по C на хинди #36
Структуры на C : Учебное пособие по C на хинди #37
Typedef на языке C: Учебное пособие по C на хинди #38
Unions In C: Учебное пособие по C на хинди #39
Обращение массива в языке C Упражнение 5: Решение: Учебное пособие по C на хинди #40
Язык C HTML Parser Упражнение 6: Учебное пособие по C на хинди #41
Статические переменные в C : Учебное пособие по C на хинди #42
Учебное пособие по C. Упражнение 6: Решения и ответы: Учебное пособие по C на хинди #43
Менеджер туристического агентства C Language. Упражнение 7: Учебное пособие по C на хинди #44
Структура памяти программ на языке C — динамическая Распределение памяти: Учебное пособие по C на хинди #45
C Language Менеджер туристического агентства Упражнение 7 Решение: Учебное пособие по C на хинди #46
Динамическое выделение памяти Malloc Calloc Realloc & Free(): Учебное пособие по C на хинди #47
C Language Менеджер сотрудников Упражнение 8: Учебное пособие по C на хинди # 48
Классы хранения на языке C Auto, Extern Static и Register Storage Classes: Учебное пособие по C на хинди #49
Менеджер сотрудников на языке C — Упражнение 8 Решение: Учебное пособие по C на языке хинди #50
Камень, бумага, ножницы для кодирования Упражнение на языке C 9: Учебное пособие по C на хинди #51
Пустой указатель на языке C: Учебное пособие по C на хинди #52
NULL Указатель на языке C: Учебное пособие по C на хинди #53
Висячий указатель на языке C: Учебное пособие по C на хинди #54
Дикий указатель на языке C: Учебное пособие по C на хинди #55
Камень, бумага и ножницы на языке C — Упражнение 9 Решение: Учебное пособие по C на хинди №56
Умножение матриц на языке C — Упражнение 10: Учебное пособие по C на хинди # 57
Введение и работа с препроцессором C: Учебное пособие по C на хинди #58
#define и #include Директивы препроцессора: Учебное пособие по C на хинди #59
Предопределенные макросы и другие директивы препроцессора: Учебное пособие по C на хинди #60
Умножение матриц в C — упражнение 10 Решение: Учебное пособие по C на хинди #61
Файловый ввод-вывод на C: Учебное пособие по C на хинди #62
Проверка палиндрома на языке C — Упражнение 11: Учебное пособие по C на хинди #63
Функции для файлового ввода-вывода на языке C: Учебное пособие по C на хинди #64
Числовой палиндром Программа на языке C: Упражнение 11 Решение: Учебное пособие по C на хинди #65
Автоматический генератор квитанций на языке C.