Порядок чисел не тот, что ожидался - C (СИ)
Формулировка задачи:
Помогите пожалуйста исправить код!? Что у меня не правильно....
Вот что должно выписывать....
Заранее спасибо!!!
| C |
Решение задачи: «Порядок чисел не тот, что ожидался»
textual
Листинг программы
#include <stdio.h>
int main() {
unsigned n;
unsigned i, j;
if ((scanf("%u", &n) != 1) || !n) {
return 1;
}
for (i = 0; i < n; ++i) {
for (j = 0; j < (n / 2); ++j) {
printf("%d %d ", (j + i) % n, (j + i + 2) % n);
}
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Мы объявляем переменные
n,iиjтипаunsigned(беззнаковые целые числа). - Сначала мы проверяем, успешно ли введено число
nс помощью функцииscanf. Если это не так или введенное числоnравно нулю, программа возвращает 1 и завершает работу. - Если
nуспешно введено, мы переходим к циклуfor, который начинается сiравным 0 и продолжается доn. - Внутри этого цикла мы переходим к другому циклу
for, который начинается сjравным 0 и продолжается до(n / 2). - Внутри этого цикла мы выводим два числа,
j + iиj + i + 2, используя функциюprintf, и затем переходим к следующей итерации внешнего цикла. - После завершения внутреннего цикла выводим символ новой строки, чтобы перейти к следующей строке вывода.
- После завершения внешнего цикла программа возвращает 0, указывая, что она успешно завершила работу.
Следует отметить, что этот код предполагает, что введенное число
nявляется четным, поскольку(n / 2)всегда будет целым числом. Еслиnнечетное, код не будет работать правильно.