Opened 5 years ago
Closed 5 years ago
#351 closed ожидается проверка (задача НЕ сдана)
WW #4 yanin.vasiliy
Reported by: | Василий Янин | Owned by: | Дмитрий Лапшин (lapshin) |
---|---|---|---|
Component: | WW_mergesort | Version: | |
Keywords: | Cc: |
Description
Я забыл создать тикет(
Change History (8)
comment:1 Changed 5 years ago by
Resolution: | → задача НЕ сдана |
---|---|
Status: | assigned → closed |
comment:2 Changed 5 years ago by
Resolution: | задача НЕ сдана |
---|---|
Status: | closed → reopened |
Summary: | WW #4 → WW #4 yanin.vasiliy |
Type: | ожидается проверка → ожидаются исправления |
А, вы просили до пятницы продлить. Ждём.
comment:3 Changed 5 years ago by
Owner: | changed from Дмитрий Лапшин (lapshin) to Василий Янин |
---|---|
Status: | reopened → assigned |
comment:4 Changed 5 years ago by
Owner: | changed from Василий Янин to Дмитрий Лапшин (lapshin) |
---|
comment:5 Changed 5 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:6 Changed 5 years ago by
Owner: | changed from Дмитрий Лапшин (lapshin) to Василий Янин |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Ну... По правилам конечно подходит. Но я бы не зачёл. Ждём лучшей версии.
comment:7 Changed 5 years ago by
Owner: | changed from Василий Янин to Дмитрий Лапшин (lapshin) |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Я попытался что-то сделать, оно не собирается даже
comment:8 Changed 5 years ago by
Resolution: | → задача НЕ сдана |
---|---|
Status: | assigned → closed |
Стиль:
- Отступы. Пробелы. Переносы. Как же трудно это читать.
Вот я отформатировал:
#include "stdio.h" int main() { char a[4]; int arr[100000]; int j = 0; scanf("%c", a[0]); if (a == 'c') { for (int i = 1; i < 4; i++) scanf("%c", a[i]); } else for (int i = 1; i < 4; i++) scanf("%c", a[i]); int n=0; if (a[0] == 'i') { while (scanf("%x", arr[j])) { j++; } mergesort(arr*, j, sizeof(int), (*comparator)(const void*, const void*)); for (int k = 0; k < j; k++) printf("%x", arr[k]); printf(\n); } else if (a[0] == 'c') { while (scanf("%x", arr[j])) { j++; } mergesort(arr*, j, sizeof(char), (*comparator)(const void*, const void*)); for (int k = 0; k < j; k++) { printf("%x", arr[k]); printf(" "); } printf(\n); } else { while (scanf("%x", arr[j])) { j++; } mergesort(arr*, j, sizeof(char), (*comparator)(const void*, const void*)); for (int k=0; k<j; k++) { printf("%x", arr[k]); printf(" "); } printf(\n); } return 0; }
Сразу читать можно.
- Имена переменных и магические константы.
- Ещё какие-то бесполезные переменные (
n
?)
Вообще:
- Тебе массив подаётся через аргументы, а не с ввода.
printf("\n")
?- Цикл с
scanf("%c")
это попытка изобрестиscanf("%‹число›s")
? scanf
без указателей (scanf("%d", &n)
)? А почему%x
?- Вызов
mergesort
: ты вместо аргумента написал объявление аргумента. Надо бы функцию передать:int int_comparator(const void *a, const void *b) { return (*(const int*)b) - (*(const int*)a); } ///… int array[] = { 3, 2, 1, 5, }; mergesort(array, sizeof(array) / sizeof(array[0]), sizeof(array[0]), int_comprarator);
merge
: массивы неизвестного заранее размера на стеке.- Вообще весь этот код работает только для
int
. Тебе надо было работать с неизвестными элементами, а это просто наборыchar
и сдвиги по указателям. - Ну и прочие синтаксические ошибки.
Это 0. Давай другие лабы лучше, рекомендую разобраться. Если есть вопросы — спрашивай у меня, у лектора, пиши на почту.
Note: See
TracTickets for help on using
tickets.
Ващет не собирается по одной банальной как мир причине.