哎,你们写的,我一点都不懂
学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能 !
#include <stdio.h> void Swap(int* p1, int* p2) { int tmp = *p1; *p1 = *p2; *p2 = tmp; } void Reverse(int* start, int* end) { while (start < end) Swap(start++, --end); } void NextPermutation(int* start, int* end) { int* p, *sp = end - 2; if (start >= end - 1) return; if (sp[0] < sp[1]) { Swap(sp, sp + 1); return; } while (sp >= start) { if (sp[0] < sp[1]) break; --sp; } if (sp < start) Reverse(start, end); else { for (p = end - 1; p > sp; --p) if (*p > *sp) { Swap(sp, p); break; } Reverse(sp + 1, end); } } int main() { int m, n, k, i, array[1024]; scanf("%d", &m); while (m--) { scanf("%d%d", &n, &k); for (i = 0; i < n; ++i) scanf("%d", array + i); while (k--) NextPermutation(array, array + n); printf("%d", array[0]); for (i = 1; i < n; ++i) printf(" %d", array[i]); putchar('\n'); } }这个自己测试过没问题,但是提交就Runtime error。找不到那里有问题,而且也查不到出错信息。