Liệt kê các phần tử xuất hiện nhiều hơn một lần trong mảng

Đề bài:
Viết chương trình C cho phép nhập vào mảng một chiều n phần tử (n>1) và thực hiện in ra các phần tử xuất hiện nhiều hơn 1 lần trong mảng theo thứ tự xuất hiện (Nếu không có phần tử nào thỏa mãn in ra 0)
INPUT
7
2 3 3 2 1 9 5
OUTPUT
2 3
Giải: 



#include<iostream>
using namespace std;
int n;
int a[1000];


void input() {
 cin >> n;
 for(int i = 0; i < n; i++)
  cin >> a[i];
}

bool NotInArray(int t, int b[100], int m ) {
 for(int i = 0; i < m; i++) {
  if(t==b[i])
   return false;
 }
 return true;
}

int dem(int x) {
 int dem = 0;
 for(int i = 0; i < n; i++)
  if(a[i] == x)
   dem++;
 return dem;
}

void output() {
 int b[100];
 int m = 0;
 int d = 0;
 for(int i = 0; i < n; i++) {
  if(NotInArray(a[i], b, m) && dem(a[i]) > 1) {
   d++;
   b[m++] = a[i];
  }
 }
 for(int i = 0; i < m; i++)
  cout << b[i] << " ";
 if(d==0)
  cout << "0";
}

int main() {
 input();
 output();
}

Nhận xét

Bài đăng phổ biến từ blog này

Đổi chỗ chữ số đầu tiên và chữ số cuối cùng của một số

Đếm số thuần nguyên tố trong một khoảng

Tìm số đẹp (lộc phát)