C语言排序并删除重复数字

描述
明明生成了NN个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。

数据范围: 1 \le n \le 1000 \1≤n≤1000 ,输入的数字大小满足 1 \le val \le 500 \1≤val≤500
输入描述:
第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。 具体格式可以参考下面的"示例"。
输出描述:
输出多行,表示输入数据处理后的结果

#include<stdio.h>
#include<string.h>
int n;
int nosamerl(int rl[10000], int n)
{
	int i, j;
	for (i = 0; i < n; i++)
		for (j = i + 1; j < n; j++)
			if (rl[i] == rl[j])
			{
				rl[j] = rl[j + 1];
				n-=1;
				j--;
			}
	return n;
}
void sortrl(int rl[10000],int n)
{
	int i,j;
	int k;
	for (i = 0; i < n-1; i++)
		for (j = 0; j < n-1-i; j++)
			if (rl[j] > rl[j + 1])
			{
				k = rl[j + 1];
				rl[j + 1] = rl[j];
				rl[j] = k;
			}
}
int main()
{
	scanf("%d", &n);
	int nosamerl(int rl[10000], int n);
	void sortrl(int rl[10000], int n);
	int i;
	int rl[1000];
	for (i = 0; i < n; i++)
	{
		scanf("%d", &(rl[i]));
		//printf("%d\n", rl[i]);
	}
	sortrl(rl, n);
    //n=nosamerl(rl, n);
	for (i = 0; i < n; i++)  
        if(rl[i]!=rl[i+1])
	    	printf("%d\n", rl[i]);
	return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值