Главная /
Программирование на языке 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! Такого алгоритма не определено!");
}
if (pFun) {
pFun(A,n);
printf("\nSorted array: ");
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! Такого алгоритма не определено!
, и программа корректно завершит свою работу
вместо отсортированного массива будет выведен изначальный массив, так как никаких изменений в нем не произойдет
произойдет сбой выполнения программы
Сложность вопроса
71
Сложность курса: Программирование на языке C в Microsoft Visual Studio 2010
62
Оценить вопрос
Комментарии:
Аноним
Кто ищет данные ответы интуит? Это же элементарно (я не ботан)
20 июн 2020
Аноним
Гранд мерси за тесты по интуит.
12 дек 2015
Другие ответы на вопросы из темы программирование интуит.
- # Определите, содержит ли приведенная программа ошибки? Если содержит, укажите, какие именно? int main(void) { struct test { unsigned int : 3; unsigned int f1 : 1; unsigned int f2 : 1; unsigned int f3 : 1; unsigned int type : 8; unsigned int index : 18; }; int a : 4, b; struct test t; t.type = 3439; b = a + t.type; //printf("t.type = %d\n", t.type); return 0; }
- # Какая ошибка содержится в приведеном фрагменте кода? int min(int, int); int t; int main(void) { register int x=-5, y=5, m; int *p; p = &x; m = min(x,y); printf("min = %d\n", m); return 0; } int min(register int a, register int b) { int m = (a<b) ? a : b; return m; }
- # С каким количеством аргументов командной строки запускается программа (считается, что аргумент в заданном виде обрабатывается корректно? [Большая Картинка]
- # В результате выполнения какой программы на экран будут выведены числа от 1 до 10 и для каждого числа его квадрат?
- # Какая программа реализует такое же преобразование, как функция strcpy(str2, str1);?