【问题描述】
输入n个整型数据,将其中相同的数据删除只剩一个为止。要求:n由输入决定,n个数据存放在数组中。
【输入形式】
输入分三行,第一行n值,第二行n个数据,数据之间用一个空格分隔
【输出形式】
在一行上输出数据,数据之间有且只有一个空格。
样例输入 | 样例输出 |
---|---|
5 1 2 3 2 3 | 1 2 |
#include<iostream>
using namespace std;
void Deletenum(int a[],int n)
{
for (int i = 0; i < n; i++)
{
for (int j = i+1; j < n; j++)//i+1代表的是a[i+1]的值
{
if (a[i] == a[j])
{
for (int k = j; k < n; k++)
{
a[k] = a[k + 1];//找到重复值后会把后面所有的值前移1个元素
}
n--; //因为覆盖后会少一个值,所以元素总个数-1
j--;//需要把新赋的值进行比较
}
}
}
for (int i = 0; i < n; i++)//此时遍历输出新的元素
{
cout << a[i]<<" ";
}
}
int main()
{
int n;
cin >> n;//输入数组元素个数
int a[100];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
Deletenum(a, n);//调用删除函数
return 0;
}