题目链接:
解题思路:
从第一个数字开始,
答案代码:
#include <stdio.h>
int main ()
{
int data = 0;
scanf("%d\n",&data);
int arr[5000] = {0};
int i = 0;
for (i = 0;i < data;i++)
{
scanf("%d ",&arr[i]);
}
int m = 0;
for (m = 0;m < data;m++)//这里是data
{
int j = 0;
for (j = m+1;j < data;j++)//注意这里j的初始值
{
if (arr[m] == arr[j])//m的值是随着外层循环在更新
{
int x = 0;
for (x = j;x < data-1;x++)//这里的data-1是为了防止数组越界
{
arr[x] = arr[x+1];
}
data--;//该行代码是为了确保所覆盖范围的精确性
//因为随着数字的向前覆盖,它要覆盖的范围就逐渐减去1
j--; //该行代码是为了防止有大于俩个的重复数字出现的情况
}
}
}
int n = 0;
for (n = 0;n < data;n++)//注意这里的判定条件
{
printf("%d ",arr[n]);
}
return 0;
}