例如, int a[6] = { 1, 3, 4, 1, 8, 4 }; 输出 1, 3, 4, 8
我的解法:
#include <stdio.h>
int main()
{
int a[6] = { 1, 3, 4, 1, 8, 4 };
int len = 6;
int distance = 0;
//算法思想:每一个数和它之后的数比较,如果重复,找到重复的那位数,那位数之后的数前移
for (int i = 0; i < len; i++)
{
for (int j = i + 1; j < len; j++)
{
if (a[i] == a[j])
{
distance = len - 1 - j;
for (int k = distance; k > 0; k--)
{
a[j] = a[j + 1];
j++;
}
len--;
}
}
}
//打印
for (int i = 0; i < 4; i++)
{
printf("%d\t",a[i]);
}
return 0;
}
邵老师解法:
#include <stdio.h>
/*每一个数和他前面的数比较,判断是否重复,如果不重复就输出*/
int main()
{
int a[6] = { 1, 3, 4, 1, 8, 4 };
for (int i = 0; i<6; i++)
{
int exist = 0; // 0表示不存在
// 判断一个数是否和前面的数重复
for (int j = 0; j<i; j++)
{
if (a[j] == a[i])
{
exist = 1;
break;
}
}
//不重复的话就输出
if (exist == 0)
{
printf("%d ", a[i]);
}
}
return 0;
}