删除数组中的相同数字--------直接打包函数,独立解析。


删除数组中的相同数字

输入一组数字,存储在一维数组中,程序能够删除一维数组中所有相同的数,使之只剩一个,按照由大到小的顺序排列输出,并且输出数组中数据
的个数。

一、思路

首先,先将数组中的数字给从小到大排序
然后,再将数组中相同的数字给删除【我会给出两种方法】
【有了第一步后,这样比较容易删除】

二、代码实例

第一:先排序【为了简单我采用冒泡排序】
【不懂冒泡排序的请从我的博客中查找冒泡排序】

void InsertSort(int a[],int length){
	int i,j;
	int temp;
	
	for(i=1;i<length;i++)
	for(j=0;j<length-i;j++)
	{
		if(a[j]>a[j+1]){
			temp=a[j];
			a[j]=a[j+1];
			a[j+1]=temp;
			
		}
	}
	
}

然后,我会开始从排好顺序的的数组中删除相同的数字

int fun(int *a,int n)
{
    /*********Begin**********
    int i=0, sentinel;
    for(sentinel=0; i<n; sentinel++){
        for(i=sentinel+1; i<n; i++){
            if(a[i] > a[sentinel]){                   //打成虚字的为第一种方法,下面的为第二种方法 
                a[sentinel+1] = a[i];                 //第一种方法【打成虚字】这个比较受限。 
                break;
            }
        }
    }
    return sentinel;
    **********  End  **********/
    int i,k=0;
	for(i=0;i<n;i++){
		if(a[i+1]!=a[i]){
			a[k]=a[i];
			k++;
		}
	} 
	return k;  //输出的是整合后的数组长度
}

总结

以上两种为这个问题的全部解题思路,如果你仔细阅读的话,很容易整合成一段完整的代码。如果你问我为什么不直接把代码全部直接再列出来?我想说的是,学习代码就要学会思考和重复训练。还是那句话,如果你要仔细阅读的话,很容易整合成一段完整的代码。

我希望阅读我代码的读者是每天都进步的,而不是直接从网上ctrl+c和ctrl+v来糊弄自己的。

最后祝阅读我博客的兄弟姐妹们,大家新年快乐。【哈哈,迟到的祝福】
祝大家代码水平节节升高。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Song ZiJian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值