多重的嵌套,本质在于数组中删除的数字被后一个数字赋值覆盖掉。
#include <stdio.h> int main(void) { int n, i, count = 0; scanf("%d", &n); int str[n]; for(i = 0; i < n; i++) { scanf("%d", &str[i]); } for(i = 0; i < n; i++) { for(int k = i + 1; k < n; k++) { if(str[i] == str[k]) { for(int j = k + 1; j < n; j++) {str[j - 1] = str[j]; } n--; k--; } } } for(i = 0; i < n; i++) printf("%d ", str[i]); return 0; }