删除序列中相同的数
来源:互联网 发布:阿里云新手教程 编辑:程序博客网 时间:2024/06/06 01:27
//删除序列中相同的数
/*#include <iostream>
using namespace std;
int main(){
int a[]={2,1,3,2,4,6,10,9,8,7,6,5,4,8,8,10};
int i,j=1,n,num=1;
n=sizeof(a)/sizeof(int);
cout<<"原序列为:";
for (i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
int k=n;
for (k;k>1;k--)//这里循环的次数应该为数组元素个数-1;
for(i=0;i<n-1;i++)
if (a[i+1]<a[i])
{
int temp=a[i+1];
a[i+1]=a[i];
a[i]=temp;
}
cout<<"按照从小到大重新排序后的序列为:";
for (i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
for (i=0;i<n-1;i++)
if(a[i]!=a[i+1])
num++;
cout<<"序列中不同的数字有"<<num<<"个"<<endl;//计算数组a中有多少个不同的数字.
//根据这个来定义b数组的大小,虽然不能直接定义为b[num]
int b[10];
b[0]=a[0];
for (i=1;i<n;i++)
{
if(a[i]!=a[i-1])
{
b[j]=a[i];
j++;
}
}
cout<<"删除相同数后的序列为:";
for (i=0;i<j;i++)
cout<<b[i]<<" ";
cout<<endl;
return 0;
}*/
//通过函数调用的方法来完成删除工作
/*#include <iostream>
using namespace std;
void Show(int [],int size);
void Paixu(int [],int size);
void Delsame(int [],int [],int size);
int main(){
int a[]={2,1,3,2,4,6,10,9,8,7,6,5,4,8,8,10},b[10];
int n=sizeof(a)/sizeof(int);
cout<<"原序列为:";
Show(a,n);
cout<<"按照从小到大重新排序后的序列为:";
Paixu(a,n);
Show(a,n);
cout<<"删除相同数后的序列为:";
Delsame(a,b,n);
Show(b,10);
return 0;
}
void Show(int a[],int size){
int m=size;
int b[100];
for (int i=0;i<m;i++)
{
b[i]=a[i];
cout<<b[i]<<" ";
}
cout<<endl;
}
void Paixu(int a[],int size){
int m=size;
int k=m;
for (k;k>1;k--)//这里循环的次数应该为数组元素个数-1;
for(int i=0;i<m-1;i++)
if (a[i+1]<a[i])
{
int temp=a[i+1];
a[i+1]=a[i];
a[i]=temp;
}
}
void Delsame(int a[],int b[],int size){
int m=size;
int j=1;
b[0]=a[0];
for (int i=1;i<m;i++)
{
if(a[i]!=a[i-1])
{
b[j]=a[i];
j++;
}
}
}*/
//通过建立类来完成删除工作
/*#include<iostream>
using namespace std;
class ARR{
public:
ARR(int x[],int size){
m=size;
for(int i=0;i<m;i++)
a[i]=x[i];
}
void Show(){
for (int i=0;i<m;i++)
cout<<a[i]<<" ";
cout<<endl;
}
void Paixu(){
int k=m;
for (k;k>1;k--)//这里循环的次数应该为数组元素个数-1;
for(int i=0;i<m-1;i++)
if (a[i+1]<a[i])
{
int temp=a[i+1];
a[i+1]=a[i];
a[i]=temp;
}
}
void Delsame(){
int j;
for (int i=0;i<m-1;i++)
{
if(a[i]==a[i+1])
{
for (j=i+1;j<m-1;j++)
a[j]=a[j+1];
m--;//删除一个元素后,元素个数减1;
i--;//有可能出现连续多个相同的数,所以应继续判断当前的i,因为接下来i++;
}
}
}
private:
int m;
int a[100];
};
int main(){
int a[]={2,1,3,2,4,6,10,9,8,7,6,5,4,8,8,10};
int n=sizeof(a)/sizeof(int);
ARR v(a,n);
cout<<"原序列为:";
v.Show();
cout<<"按照从小到大重新排序后的序列为:";
v.Paixu();
v.Show();
cout<<"删除相同数后的序列为:";
v.Delsame();
v.Show();
return 0;
}*/
//增加程序功能,求出序列中每个数据具体的重复个数,在原结果的下一行对应输出。
//例如,修改后的程序输出结果如下所示:
//1 2 2 3 4 4 5 6 6 7 8 8 8 9 10 10
//1 2 3 4 5 6 7 8 9 10
//1 2 1 2 1 2 1 3 1 2
/*#include <iostream>
using namespace std;
int main(){
int a[]={2,1,3,2,4,6,10,9,8,7,6,5,4,8,8,10},c[10];
int i,j=1,n,num,q,l=0;
n=sizeof(a)/sizeof(int);
cout<<"原序列为:";
for (i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
int k=n;
for (k;k>1;k--)//这里循环的次数应该为数组元素个数-1;
for(i=0;i<n-1;i++)
if (a[i+1]<a[i])
{
int temp=a[i+1];
a[i+1]=a[i];
a[i]=temp;
}
cout<<"按照从小到大重新排序后的序列为:";
for (i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
for (i=0,l=0;i<n-1,l<10;i+=num,l++)
{
num=1;
for (q=i+1;q<n;q++)
if (a[i]==a[q])
num++;
c[l]=num;
}
int b[10];
b[0]=a[0];
for (i=1;i<n;i++)
{
if(a[i]!=a[i-1])
{
b[j]=a[i];
j++;
}
}
cout<<"删除相同数后的序列为:";
for (i=0;i<j;i++)
cout<<b[i]<<" ";
cout<<endl;
cout<<"相同数字重复的次数为:";
for(l=0;l<10;l++)
cout<<c[l]<<" ";
cout<<endl;
return 0;
}*/
//讲以上数组改为指针,根据对象的具体元素个数动态开辟存储空间存放对象数据。
//增加程序功能,求出对象中每个数据具体的重复个数,同样定义一个整形指针存放每个数据的重复次数,
//在原结果的下一行对应输出。例如,修改后的程序输出结果如下所示:
//1 2 2 3 4 4 5 6 6 7 8 8 8 9 10 10
//1 2 3 4 5 6 7 8 9 10
//1 2 1 2 1 2 1 3 1 2
#include<iostream>
using namespace std;
class ARR{
public:
ARR(int x[],int size){
m=size;n=size;
a=new int[m];
c=new int[m];
for(int i=0;i<m;i++)
a[i]=x[i];
}
void Show(){
for (int i=0;i<m;i++)
cout<<a[i]<<" ";
cout<<endl;
}
void Show1(){
for (int i=0;i<n-1;i+=c[i])
cout<<c[i]<<" ";
cout<<endl;
}
void Paixu(){
int k=m;
for (k;k>1;k--)//这里循环的次数应该为数组元素个数-1;
for(int i=0;i<m-1;i++)
if (a[i+1]<a[i])
{
int temp=a[i+1];
a[i+1]=a[i];
a[i]=temp;
}
}
void Delsame(){
int j;
for (int i=0;i<m-1;i++)
{
if(a[i]==a[i+1])
{
for (j=i+1;j<m-1;j++)
a[j]=a[j+1];
m--;//删除一个元素后,元素个数减1;
i--;//有可能出现连续多个相同的数,所以应继续判断当前的i,因为接下来i++;
}
}
}
void Repete(){
int num;
for (int i=0;i<m-1;i+=num)
{
num=1;
for (int q=i+1;q<m;q++)
if (a[i]==a[q])
num++;
c[i]=num;
}
}
private:
int m,n;
int *a,*c;
};
int main(){
int a[]={2,1,3,2,4,6,10,9,8,7,6,5,4,8,8,10};
int n=sizeof(a)/sizeof(int);
ARR *p=new ARR(a,n);
cout<<"原序列为:";
p->Show();
cout<<"按照从小到大重新排序后的序列为:";
p->Paixu();
p->Show();
p->Repete();
cout<<"删除相同数后的序列为:";
p->Delsame();
p->Show();
cout<<"相同数字重复的次数为:";
p->Show1();
delete p;
return 0;
}
- 删除序列中相同的数
- 删除序列中相同元素
- 128.删除一维数组中相同的数
- (C++)删除整型数列中相同的数
- 删除数组中相同的数,统计两个数组中重复数个数并把不同数找出来
- 输出一个整数序列中与指定数字相同的数的个数
- 删除算法3 unique 将连续相同的数删除
- 删除数据表中相同的记录!
- 删除串中相同的元素
- [python]删除列表中相同的元素
- 删除字符串中相同的字符
- 删除数组中相同的元素
- 删除字符串中相同的元素
- 删除数组中相同的元素
- 二进制数中1的个数相同
- 【2011】去掉数列中相同的数
- 给定数组删除多余允许的相同的数
- 删除任意数组中相同的元素 , 删除排序后的数组中相同的元素
- weak_ptr的构造函数
- 二维数组的操作运算
- 随想
- Java synchronized详解
- QtWidget: 给widget加上背景图片
- 删除序列中相同的数
- DataGridView标题栏颜色设置无效 ...
- 什么是DQL、DML、DDL、DCL
- google map api v2
- 关于Java的GUI实验课
- 窗口最小化后隐藏
- 窗口最小化后隐藏
- CFA(3)
- linux c常用头文件