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ố

Chuyển đơn vị đo nhiệt độ C và F

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