C语言-输出数组内重复的元素-使用最简单的循环结构(重复次数可能不止一次)

    技术2022-07-10  141

    题目:读取由10个元素组成的数组,并选择在另一个数组中出现多次的所有数字。 在结果数组中,这些数字不应重复。


    例如: Input: 4 1 2 1 11 2 34 8 9 10 Output: 1 2


    Input: 1 1 1 1 1 1 1 1 1 1 Output: 1


    #include <stdio.h> int main() { const int N = 10; int a[N]; int tmp[5]; //重复项数组(数组元素最多为5) int mid = 0; //用于纪录有几个重复元素 for (int i = 0; i < N; i++) { scanf("%d", &a[i]); //输入 for (int j = 0; j < i; j++) { if (a[i] == a[j]) //将之前输入的所有元素与当前元素对比是否相同, { tmp[mid] = a[j]; //如果相同则将其赋值给重复项数组 mid++; for (int p = 0; p < mid - 1; p++) //另取一循环判断重复项数组内的元素是否重复(mid-1是因为上式++) { if (tmp[p] == tmp[mid - 1]) { tmp[mid - 1] = '/0'; //将重复项数组内的重复元素置0,并将mid前置重新赋值 mid--; } } } } } for(int i = 0; i < mid; i++) //输出重复项数组内已有的元素 printf("%d ", tmp[i]); return 0; }
    Processed: 0.010, SQL: 9