【C++】1183 - 去除重复数字 二

问题

给你 N 个数(N≤100),每个数都在(0∼1000)之间,其中由很多重复的数字,请将重复的数字只保留一个,并将剩下的数由小到大排序并输出。

在这里插入图片描述

1.分析问题

  1. 已知:N个数
  2. 未知:输出数列
  3. 关系:重复的数字只保留一个,并将剩下的数由小到大排序

2.定义变量

x:当前输入的数。
count:实际输入的个数。

	//二、数据定义 
	int a[1001]={
    
    0},n,x,count=0;

3.输入数据

由于读入的元素在 0~1000之间,我们准备一个长度为 1001 的数组用来标记 x 有没有出现过。

//三、数据输入 
	cin>>n;
	for(int i=0;i<n;i++){
    
    
		cin>>x;
		if(0==a[x]){
    
    	
			++count;
		}
		a[x]=1;
			
	}

4.数据计算

5.输出结果

我们只输出数组中值为1的数,注意我们需要输出它的下标,而不是它的值。

#include<iostream>
using namespace std;
int main(){
    
    
	//一、分析问题
	//已知:N个数
	//未知:输出数列 
	//关系:重复的数字只保留一个,并将剩下的数由小到大排序

	
	//二、数据定义 
	int a[1001]={
    
    0},n,x,count=0;


	//三、数据输入 
	cin>>n;
	for(int i=0;i<n;i++){
    
    
		cin>>x;
		if(0==a[x]){
    
    	
			++count;
		}
		a[x]=1;
			
	}
		
		

	//四、数据计算 
	


	//五、输出结果 
	cout<<count<<endl;
	for(int i=0;i<1001;i++){
    
    
		if(1==a[i]){
    
    
			cout<<i<<endl;
		}
		
	}
	return 0;	
}

猜你喜欢

转载自blog.csdn.net/qq_39180358/article/details/135401849
今日推荐