Нечетните и равномерни функции при програмирането в C
Операторът на модули в C
Операторът на модули в C (представен като символ "%") действа като вид разделяне. Но вместо разделянето на две числа и връщането на коефициента на потребителя, операторът на модула разделя две числа и връща останалото като цяло число. В този пример се появяват две модулни операции, всяка връщаща идентична стойност:
int x = 11% 4 / остатък от 11/4 = 3 int и = 13% 5 / остатък от 13/5 = 3
Използвайте модула, за да определите четните и нечетните числа
Тъй като модулната операция определя остатъка от разделянето между две числа, изглежда логично операторът на модула да бъде използван за намиране на нечетни и четни номера. Числото число по дефиниция е всяко число, което може да се дели с 2. Следователно номерът връща нула при получаване на модула на разделянето с 2. По-просто число "n" е дори ако "n% 2" е равна на нула. Например този код дефинира функция, която отнема цяло число и връща число (0 или 1) според това дали числото е равно или не.
int е евентуално (int x) {връща (x% 2); }
Функция за генериране на четни и нечетни номера
Използвайки операцията на модула, изглежда лесно да създадете функция, която генерира нечетни или четни номера. Програмистът може да е полезно да генерира списък с четни и нечетни числа. В този случай простичко за цикъл и размер на полето, въведени от потребителя, е единственото нещо, от което се нуждаете, за да създадете колекция от номера:
void evenGenerate (int размер) {int i = 0;
за (i; i <= размер; i ++) {ако (i% 2 == 0) cout << i << endl; }}
Това генерира четни числа. Програмата може да промени израза "if", за да каже "if (i% 2 == 1)", за да генерира нечетни числа.
Алтернативи на модула
Самият модул не е лесна операция, но съдържа три математически изчисления в едно. Това е така, защото операцията "x% y" всъщност е равна на "x - y * (x / y)". Познавайки това, програмистът може да раздели операцията или да намери начини да включи частите на операцията с други операции, за да оптимизира времето. Но за използване и обща лекота при кодирането на оператора на модула работи добре. Следното служи като пример за два метода заедно в C:
инт х = 10% 2; // 10/2 = 5 без остатък int y = 10 - (2 * (10/2)); // В ред на действие, 10/2 = 5; 5 * 2 = 10; 10 - 10 = 0 почивка