int main(void) { int m[9] = { 0 }; int flag = 0; srand(time(0)); for (int i = 0; i < 9; i++) { do { flag = 0; m[i] = rand() % 9 + 1; for (int j = 0; j < i; j++) { if (m[j] == m[i]) { flag = 1; } } } while (flag==1); } for (int i = 0; i < 9; i++) { printf("%d ",m[i]); } }
那句flag=0很关键。
感觉自己while循环用的不是很好呀,尤其是while里面用了if这种类型的,一会就绕晕了。