baybaye
2015-11-06 14:11
采纳率: 70%
浏览 1.4k
已采纳

c语言编程问题

定义数组:{ 0,1,5,2,5,7,3,4,5,1,1,2,3,6,7,8,8
按升序排序
•重复数据删除
打印过程0 17图片说明

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • ysuwood 2015-11-07 01:57
    已采纳
     #include <stdio.h>
    #define NUM 18
    int main()
    {
        int a[NUM]={ 0,1,5,4,2,5,7,8,3,4,5,1,1,2,3,6,7,8 },b[NUM];
        int i,j,temp;
        printf("initial values:\t");
    
        for( i=0; i<NUM; i++ )
        {
            printf("%d ",a[i]);
        }
        printf("\n\n");
    
        for( i=0; i<NUM; i++ )
        {
            printf("process %d:\t",i);
            for( j=0; j<NUM-1; j++)
            {
                if(a[j]>a[j+1])
                {
                    temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;
                }
                printf("%d ",a[j]);
            }
            printf("%d\n",a[j]);
        }
    
        printf("\nsort values :\t");
        for( i=0; i<NUM; i++ )
        {
            printf("%d ",a[i]);
        }
        printf("\n");
        b[0]=a[0];
        printf("Deduplication :\t%d ",b[0]);
        for( i=1,j=0; i<NUM; i++ )
        {
            if(b[j]!=a[i]) 
            {
                b[++j]=a[i];
                printf("%d ",b[j]);
            }
        }
        printf("\n");
    }
    
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • moling3650 2015-11-06 14:38

    用的是插入排序,其实第9步已经整体有序,后面的9步又有什么意义?

    评论
    解决 无用
    打赏 举报
  • 楼主的问题是神马?没明白你什么问题

    评论
    解决 无用
    打赏 举报
  • #include

    #define N 10

    int clear_duplication(int *p, int n, int *b)
    {

    int i, l = 0;
    b[l]=p[0];
    for(i=1; i< n; i++)
    {
        if(b[l] == p[i])
        {
            continue;
        }else{
            l++;
            b[l]=p[i];
        }
    }
    return ++l;
    

    }

    void print_arr(int *p, int n)
    {
    int i;
    for(i=0; i<n; i++)
    {
    printf(" %d", p[i]);
    }
    putchar(10);
    }

    int main()
    {
    int a[N] = {0, 1, 5 , 2, 5, 7, 3, 4, 5, 1};
    int i, temp,ret;
    int step=0;
    int b[N]= {0};

    for(step=0; step < N; step++)
    {
        for(i=0; i< N; i++)
        {
    
            if(a[i] > a[i+1])
            {
                temp =  a[i];
                a[i] = a[i+1];
                a[i+1] = temp;
            }
        }
        printf("process %d: ", step);
        print_arr(a, 10);
    }
    printf("sort values: ");
    print_arr(a, 10);
    
    ret = clear_duplication(a,10,b);
    
    printf("Deduplication: ");
    print_arr(b, ret);
    
    return 0;
    

    }

    
    
    评论
    解决 无用
    打赏 举报
  • havedream_one 2015-11-07 06:47

    你都写出来了,还要问什么????

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题