数组删除重复元素

(2) 编写程序:输入具有重复值的一维数组进行排序,删除重复的数据并顺序输出。
输入格式:在一行中输入一组具有重复数的数据。
输出格式:在一行中输出排序后的无重复值的数组。
样例输入1:
1 3 2 3 5 4
样例输出1:
1 2 3 4 5
样例输入2:
2 8 6 10 78 34 6 8 10
样例输出2:
2 6 8 10 34 78

收获:多拿笔进行经验总结,举例计算

//删除重复数,排序
#include<stdio.h>
int main()
{
//	int data[6]={1,2,2,4,5,6};
	int k = 0;
	int length = 6;
	
	printf("请输入数组长度:\n");
	scanf("%d",&length);
	int data[length];
	
	printf("请输入数值,中间用空格隔开:\n"); 
	for(int i=0;i<length;i++)
		scanf("%d",&data[i]);
	
	/*
	当i=4时,k处的循环并不会执行 
	
	外层循环i,从第一个元素开始
	内层循环j,从第i+1个元素逐一与第i个元素比较

	自己拿笔随便举个例子试下,为什么会是这样
	*/
	for(int i=0;i<length-1;i++)
		for(int j=i+1;j<length;j++)
			if(data[i]==data[j])
				for(k=j;k<length-1;k++)
					data[k] = data[k+1];
	//将最后一个值赋值为0 
	data[k] = 0;
	
	for(int i=0;i<length;i++)
		printf("%3d",data[i]);
		//默认右对齐
	
	return 0;
} 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值