【前言】
今天是刷题打卡第55天!
一起加油鸭铁汁们,哈哈,实在是词穷了。
原题:序列中整数去重
题目描述:
示例:
输入:5 10 12 93 12 75 输出:10 12 93 75
思路 :
比较简单,都在代码注释后面咯。
代码执行:
#include<stdio.h> 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; }
改编:给定一个正整数数组,对它进行去重操作。
代码如下:
#include<stdio.h> 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天!
加油吧少年。