Главная /
Программирование на языке C в Microsoft Visual Studio 2010 /
Что произойдет при выполнении приведенной программы, если пользователь задаст номер алгоритма 9? void PuzSortInc (int*, int ); void PuzSortDec (int*, int); int main (void) { int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7}; int i, n, alg; void (*pFun) (int*, int
Что произойдет при выполнении приведенной программы, если пользователь задаст номер алгоритма 9?
void PuzSortInc (int*, int );
void PuzSortDec (int*, int);
int main (void)
{
int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7};
int i, n, alg;
void (*pFun) (int*, int) = NULL;
n = sizeof(A)/sizeof(A[0]);
printf("Исходный массив: ");
for (i = 0; i < n; i++) printf(" %3d", A[i]);
printf("\nВыберите алгоритм сортировки (1 - \"методом пузырька\" по возрастанию,\
2 - \"методом пузырька\" по убыванию: ");
scanf("%d", &alg);
switch (alg) {
case 1: pFun = PuzSortInc; break;
case 2: pFun = PuzSortDec; break;
default: printf("ERROR! Такого алгоритма не определено!");
}
pFun(A,n);
printf("\nОтсортированный массив: ");
for (i = 0; i < n; i++) printf(" %3d", A[i]);
return 0;
}
void PuzSortInc (int* arr, int size)
{
int i, j, buf;
for (i = 0; i < size - 1; i++ ) {
for (j = 0; j < size - 1; j++) {
if (arr[j] > arr[j + 1]) {
buf = arr[j];
arr[j] = arr[j+1];
arr[j+1] = buf;
}
}
}
}
void PuzSortDec (int* arr, int size)
{
int i, j, buf;
for (i = 0; i < size - 1; i++ ) {
for (j = 0; j < size - 1; j++) {
if (arr[j] < arr[j + 1]) {
buf = arr[j];
arr[j] = arr[j+1];
arr[j+1] = buf;
}
}
}
}
вопрос
Правильный ответ:
будет выведено сообщение об ошибке
ERROR! Такого алгоритма не определено!, и программа корректно завершит свою работу
вместо отсортированного массива будет выведен изначальный массив, так как никаких изменений в нем не произойдет
произойдет сбой выполнения программы
Сложность вопроса
79
Сложность курса: Программирование на языке C в Microsoft Visual Studio 2010
62
Оценить вопрос
Комментарии:
Аноним
Большое спасибо за решениями по intuit.
26 ноя 2019
Аноним
Зачёт прошёл. Иду в клуб отмечать экзамен интуит
13 дек 2016
Другие ответы на вопросы из темы программирование интуит.
- # Необходимо написать функцию sum, которая будет вычислять сумму всех элементов массива. В данную функцию должно передаваться два параметра - массив и размер массива. В какой программе функция sum объявлена верно?
- # Чему будет равно значение переменной c после выполнения приведенной программы? int main(void) { struct test { unsigned int a : 2; unsigned int b : 8; }; int c; struct test t; t.b = 255; t.a = 3; c = t.b ^ t.a; printf("c = %d\n", c); return 0; }
- # Каким образом должен быть подключен файл some.h, находящийся на два уровня выше, чем главный файл?
- # Какие утверждения являются верными?
- # Почему доступ к элементам многомерного массива происходит значительно медленнее, чем к элементам одномерного?