В классе и дома решите все задачи.
Весь код можно писать внутри функции int main(){}
. Свои функции создавать не обязательно. Динамической памятью пользоваться не надо.
Вам понадобятся функции printf
для печати в консоль текста. Функция scanf
для ввода чисел из консоли. Когда пользователь нажимает на Enter число считается введёным.
Для начала попробуйте скопировать и запустить эти примеры. Можете использовать онлайн компиляторы из раздела Инструменты . А можете открыть любой текстовый редактор, вставить туда код из примера, сохранить его с расширением .c
и скомпилировать компилятором gcc: gcc main.c -o main.out
и запустить программу из консоли ./main.out
.
// Подключаем заголовочный файл для работы функций ввода-вывода информации
#include <stdio.h> // чтобы работала печать в консоль printf.
// Пример простой задачи.
// Все программы на Си начинают свое выполнения с запуска функции main.
// Она обязана возвращать int число - код возврата.
// Код возврата 0, даёт понять Операционной системе, что программа выполнилась успешно
// Другие коды возврата означают ошибки для ОС.
// Функция main может принимать на вход аргументы, но нам это пока не надо,
// поэтому в круглых скобках написано void, что значит, что аргументов нет.
int main(void) {
int n; // объявляем переменную с именем n типа int.
// Что лежит в переменной n сейчас?
// Правильный ответ: мусор.
printf("Enter a number\\n");
scanf("%d", &n); // магическая функция для ввода числа. Обратите внимание на знак & перед именем переменной. Мы обсудим это позже на лекциях.
// тут показывается, как пользоваться функцией printf,
// которая осуществляет форматированный вывод.
printf("f(x) = x^2 = %d^2 = %d\\n",n, n*n);
}
Написать программу, запрашивающую целое число с клавиатуры и выводящую строку «нечётное число», если число нечетное и строку «чётное», в противном случае.
// Подключаем заголовочный файл для работы функций ввода-вывода информации
#include <stdio.h>
// С функции main() начинается выполнение программы
int main(void) {
// Определяем переменную, в которую будет записываться число
int a;
// Приглашаем ввести число с клавиатуры
printf("Введите a: ");
scanf("%d",&a);
//Проверяем число на четность и выводим соответствующие сообщения
// Оператор % - это взятие остатка от деления
// Кстати, оператор / делит нацело если оба числа целые
if (a % 2 == 1) { //можно написать просто if(a % 2)- результат не изменится
printf("нечётное число\\n");
} else {
printf("чётное число\\n");
}
//Завершаем программу
return 0;
}
Написать программу, выводящую на консоль квадраты чисел от 0 до 25.
#include<stdio.h>
int main(void) {
int a; // очередной элемент последовательности
// Организуем цикл for, определяя параметр цикла (переменная int i)
// внутри самого оператора for;
for(int i=0; i<=25; i++) {
a = i*i;
printf("%d^2 = %d\\n",i,a);
}
return 0;
}
Написать программу, вычисляющую сумму первых n элементов последовательности, определяемую соотношениями
$$ a_1 = 2, a_{i+1} = a_{i}^2 $$
#include<stdio.h>
int main(void) {
int a = 2; // первый элемент последовательности
int s = 0; // переменная для хранения значения суммы
int n; // переменная, в которую будет заноситься количество слагаемых
// Организуем ввод n
printf("Введите количество элементов последовательности: ");
scanf("%d",&n);
for (int i=1; i<=n; i++){
a = a*a;// вычисляем следующий элемент последовательности
s = s+a;// добавляем новый элемент к сумме
}
// Выводим значение суммы
printf("Сумма равна %d\\n",s);
return 0;
}
Написать программу, которая скопирует один массив размера 5 в другой массив в обратном порядке и каждое число умножить на 10.
#include<stdio.h>
// Пример со статическим массивом
int main(void) {
int x[] = {1,2,3,4,5}; // создали массив и заполнили его числами сразу. Его размер будет равен количеству чисел в блоке инициализации в фигурных скобках.
int y[5]; // создали массив из 5 элементов. Он заполнен мусором.
for (int i = 0; i < 5; i++) {
y[i] = 10*x[4-i]; // почему тут 4??? хммм. Странно то как.
}
for (int i = 0; i<5;i++) {
printf("%d ", y[i]);
}
printf("\\n");
}
Написать программу, которая заполнит массив числами, введеными с клавиатуры.
#include<stdio.h>
// Пример со статическим массивом
int main(void) {
int x[10]; // выделили память на массив размера 10.
// кстати, в квадратных скобках может быть записана ТОЛЬКО константа.
// то есть обыкновенная переменная там быть не может.
// Это связанно с особенностью выделения памяти на стеке.
// С этим разберемся на лекции
for (int i = 0; i < 10; i++) {
scanf("%d", &x[i]);
}
// проверим, что он сохранил числа
for (int i = 0; i < 10;i++) {
printf("%d ", x[i]);
}
printf("\\n");
}
Написать программу, которая вычисляет Евклидово расстояние между двумя точками в двумерном случае: