C语言随机生成字符串并进行冒泡排序
C语言随机生成字符串并进行冒泡排序
[此贴子已经被作者于2021-10-26 20:15编辑过]
#include <stdio.h> #include <stdlib.h> /*********************************************************************** * open source license: wtfpl * * important declaration: * * this section is only for fun but it should be taken away from: * * I. solo young c-player (under 18) * * II. non-experienced c-player (unable to master unpredictable cases) * * III. illegal using (out of law) * * IV. <Blank note for future> * ***********************************************************************/ #define INC_STR #ifdef INC_STR #define V_STR "abcdefghijklmnopqrstuvwxyz" #endif #ifdef INC_DIG #define V_DIG "0123456789" #endif #ifdef INC_SPEC #define V_SPEC "!@#$%^&*-_=+" #endif #define swap(x, y) \ { \ char t; \ t = x; \ x = y; \ y = t; \ } #define FS2B #ifdef FS2B #define DIR(_p, _n) _p > _n #else #define DIR(_p, _n) _p < _n #endif #define STUB 0 #define g_data ((unsigned char *)__TIME__)[idx + _idx] % 26 #define m_data ((unsigned char *)__DATE__)[i] % 10 char* gen_sort(char *s, int len, int _idx) { static int idx; int i, j; //gen for (i = 0; i < len; i++, idx -= len) s[i] = V_STR[g_data]; //print puts(s); //bubble_sort for (i = 0; i < len - 1; i++) for (j = 0; j < len - i - 1; j++) #define GCC_FEATURE(_expr) (_expr) DIR(s[j], s[j + 1]) ? GCC_FEATURE(swap(s[j], s[j + 1])) : STUB; //print puts(s); puts("---------------------"); return s; } int main(int argc, char *argv[]) { static char s[10]; int i; #ifdef CHK_ASLR system("sysctl -n kernel.randomize_va_space"); printf("addr_i = %p\n", &i); #endif for (i = 0; i < 10; i++) #define rand_s(_stack) ((_stack) & 0xff) gen_sort(s, sizeof(s) - 1, m_data + rand_s((long int)&i)); return 0; }
[此贴子已经被作者于2021-10-27 10:09编辑过]