Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование на языке Си. Билеты и ответы

.pdf
Скачиваний:
317
Добавлен:
10.09.2019
Размер:
761.78 Кб
Скачать

компилятора. Она

позволяет выдавать компилятору различные инструкции, предусмотренные создателем компилятора.

Если ключевое слово не указано, директива игнорируется.

Если указано несуществующее ключевое слово, выводится сообщение об ошибке и компиляция прерывается. (В некоторых компиляторах, таких как g++, компиляция продолжается, просто показывая предупреждение).

ЗАДАЧА: НАПИСАТЬ ФУНКЦИЮ, МЕНЯЮЩУЮ МЕСТАМИ 1-УЮ И ПОСЛЕДНЮЮ СТРОКИ ДВУМЕРНОГО МАССИВА. ПРОДЕМОНСТРИРОВАТЬ ЕЁ ИСПОЛЬЗОВАНИЕ В ПРОГРАММЕ.

Ответ на практическое задание билета №4 такой же.

СИ

#include <stdio.h>

///Функция, меняющая местами 1-ую и последнюю строки двумерного массива

///arr — массив, n — количество строк, m — количество столбцов

///Сложность алгоритма: T(n) = O(n)

void bilet4(char *arr, int n, int m){ int i; char ch; int wn = n - 1; for (i = 0; i < m; i++){

ch = arr[i];

arr[i] = arr[m*wn + i]; arr[m*wn + i] = ch;

}

}

int main() {

int i, j; /// Счетчики циклов

/// Массив строк: 4 строки, в каждой по 6 символов

char arr4[4][6] = {{"str_1"}, {"str_2"}, {"str_3"}, {"str_4"}};

/// 6 символ в каждой строке — \0 bilet4(&arr4[0][0], 4, 6); /// Обработка for (i = 0; i < 4; i++) {

for (j = 0; j < 5; j++)

printf("%c", arr4[i][j]); /// Вывод printf(" ");

} /// Вывод: str_4 str_2 str_3 str_1 printf("\n");

return 0;

}