一串数字去重

给出一串数字:1 2 3 3 3 3 4 5 6 7 8 

要求输出:1 2 3 4 5 6 7 8 

既要求去重

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int main()
 5 {
 6     int num[100], n, i;
 7     printf("输入数字的个数:");
 8     scanf("%d",&n);
 9     for(i = 0;i < n;i += 1){
10         scanf("%d",&num[i]);
11     }
12     printf("%d ",num[0]);//先输出第一个数
13     for(i = 1;i < n;i += 1){
14         if(num[i] != num[i-1]){//这是关键语句
15             printf("%d ",num[i]);
16         }
17     }
18     return 0;
19 }

或者

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num[100], n, i;
    printf("输入数字的个数:");
    scanf("%d",&n);
    for(i = 0;i < n;i += 1){
        scanf("%d",&num[i]);
    }
    for(i = 0;i < n;i += 1){
        int j;
        printf("%d ",num[i]);
        for(j = 1;i + j < n;j += 1){
            if(num[i] != num[i + j]){
                i = i + j -1;
                break;
            }
        }
        if(i + j == n){//这一个条件不能少,少了就可能出现最后一个输出不了的情况,或                           
                            // 者会重复输出
            break;
        }
    }
    return 0;
}

 

posted @ 2019-09-24 12:45  浅隐  阅读(404)  评论(0编辑  收藏  举报