一维数组去重处理法二(C语言)
生活随笔
收集整理的這篇文章主要介紹了
一维数组去重处理法二(C语言)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題:小明隨機生成 n(n<100000)個0~999的整數,可能有重復的數字,請你按從小到大的順序輸出這些整數(忽略重復數字),例如隨機生成的8個數為:
1 2 5 2 4 5 6 5 2
輸出結果:
1 2 4 5 6
解題思路(方法二):相比法一將n個數排序的較大代價,法二更優:發現n <999,定義長度為1000的數組,通過對數組元素出現次數計數,輸出次數非0的元素下標(即為需輸出的數值),同時實現了去重
#include<stdio.h> #include<math.h> int main() {int n,i;scanf("%d",&n);int str[1000]={0};while(n!=0)//讀入n個數并計數 ,數組下標代表數組元素 {scanf("%d",&i);str[i]++; n--;}for(i=0;i<999;i++)//輸出非0下標{if(str[i]>0){printf("%d ",i); } } return 0; }附法一:一維數組去重處理法一(C語言)
總結
以上是生活随笔為你收集整理的一维数组去重处理法二(C语言)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zabbix mysql优化 my.cn
- 下一篇: OJ1007: 鸡兔同笼