【冒泡排序】 口诀: 外层循环 n-1,内层循环再减 i
1 2 3 4 5 6 7 | void reverse(char s[]) /* (char *s) */ { int c, i, j; for (i = 0, j = strlen(s)-1; i < j; i++, j--) { c = s[i]; s[i] = s[j]; s[j] = c; } } |
【最大公约数】 最小公倍数 lcm
1 2 3 4 5 6 7 | void reverse(int v[], int n) { int c, i, j; for (i = 0, j = n-1; i < j; i++, j--) { c = v[i]; v[i] = v[j]; v[j] = c; } } |
【寻找最大值(所在的位置)】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | void itoa(int n, char s[]) /* -123 -> “-123” */ { int i = 0, sign; if ((sign = n) < 0) n = -n; do { /* get digits in reverse order */ s[i++] = n % 10 + '0'; } while ((n /= 10) > 0); if (sign < 0) s[i++] = '-'; s[i] = '\0'; reverse(s); } |
【判断某数为素数】
1 2 3 4 5 6 7 8 9 10 | int trim(char s[]) { int n; for (n = strlen(s)-1; n >= 0; n--) if (s[n] != ' ' && s[n] != '\t' && s[n] != '\n') break; s[n+1] = '\0'; return n; /* the length of s */ } |