【前言】
今天是刷题打卡第55天!
一起加油鸭铁汁们,哈哈,实在是词穷了。
原题:序列中整数去重
题目描述:
示例:
输入:5
10 12 93 12 75
输出:10 12 93 75
思路 :
比较简单,都在代码注释后面咯。
代码执行:
int main()
{
int n = 0;
scanf("%d",&n);
int arr[5001] = {0};
int index = 0;//数组中的数
for(int i = 0; i < n; i++)
{
scanf("%d",&index);//依次输入
if(!arr[index])//如果输入的数不是0
{
arr[index] = index;//这样写,可以保留数组中的相同数的一个
printf("%d ", arr[index]);
}
}
return 0;
}
改编:给定一个正整数数组,对它进行去重操作。
代码如下:
int main()
{
int arr[] = { 1,2,2,3,4,5,3,4,6,7 };
int sz = sizeof(arr) / sizeof(arr[0]);
//两层循环遍历
for (int i = 0; i < sz; i++)
{
for (int j = i + 1; j < sz; j++)//只需要从后面那个元素开始比较
{
if (arr[j] == arr[i])
{
arr[j] = 0;
}
}
}
for (int i = 0; i < sz; i++)
{
if (arr[i])//打印不为0的数组元素
{
printf("%d ", arr[i]);
}
}
return 0;
}
结语
今天是刷题打卡第55天!
加油吧少年。