- 635 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 18:42:25 ]
- >>555 たぶんできてるはず。570のインスパイヤ
#include <stdio.h> #include <stdlib.h> int compareInt(int * left, int * right) { return *left - *right; } FILE * OUT; int length = 3, * ans, * vals; void createSwitch(int current, int * vals) { int i; if (current == length) { for (i = 0; i < length; i++) ans[i] = vals[i]; qsort(ans, length, sizeof(int), (int(*)(const void*, const void*)) compareInt); fprintf(OUT, "printf(\""); for (i = 0; i < length; i++) { if (i != 0) fprintf(OUT, " "); fprintf(OUT, "%%d"); } fprintf(OUT, "\\n\", "); for (i = 0; i < length; i++) { if (i != 0) fprintf(OUT, ", "); fprintf(OUT, "%d", ans[i]); } fprintf(OUT, ");\n"); return; } fprintf(OUT, "val = getchar() - '0';\ngetchar();\nswitch (val) {\n"); for (i = 0; i < 10; i++) { vals[current] = i; fprintf(OUT, "case "); fprintf(OUT, "%d", i); fprintf(OUT, ":\n"); createSwitch(current + 1, vals); fprintf(OUT, "break;\n"); } fprintf(OUT, "default:\nputs(\"input error\");\nreturn 1;\n}\n"); } int main(void) { OUT = fopen("shukudai555.c", "w"); vals = (int *) malloc(sizeof(int) * length); ans = (int *) malloc(sizeof(int) * length); fprintf(OUT, "#include <stdio.h>\nint main(void) {\nint val;\n"); createSwitch(0, vals); fprintf(OUT, "return 0;\n}"); return 0; }
|

|