www.ylrr.net > C++编写程序:数组中相同的数保留一个

C++编写程序:数组中相同的数保留一个

#include<iostream> using namespace std; void main() { int x[256],i,n,j,k,b; scanf("%d",&n); if ( n<0 ) n=0; else if ( n>256 ) n=256; for ( i=0;i<n;i++ ) scanf("%d",x+i); for ( i=0,k=0;i<n;i++ ) { b=1; for ( j=0;j<k;j++ ) if ( x[i]==x[j] ) { b=0; break; } if ( b ) {

1,创建二个int型数组,一个保存你从键盘上输入的数,另一个用于排序2,循环3,如果遇到相同的,continue,进行下一个4,如果不相同,进入第二个循环:把这个数和第二个数组的数进行比较,比其小的话比较下一个,大的话和其交换,然后拿交换后的数,比较下一个5,第二个数组中的数,就是从大到小并且没有重复的数字

#include void main() { int i,j,a[6],b[6],temp,e,q,x,y; for(i=0;i>a[i]; } e=0; for(i=0;i 评论0 0 0

#include using namespace std;//往容器中添加序列vector& creatvec(vector& vec){ int temp; cin.clear(); while(cin>>temp) { vec.push_back(temp); } //cout& mergevec(const vector& vec1,const vector& vec2,vector& vec){ for(vector::const_iterator iter

这是变量,不能用于数组的声明,而且没有初始化.可以使用malloc分配内存.代码如下:#include #include using namespace std; int main() { int n; int *a; int i; cout cin>>n; a = (int*) malloc(sizeof(int)*n); for(i=0;i { cout>>"请输入需要进行排序的数字:"; cin>>a[i]; } for(j=0;j { for(i=0;i if(a[i]>a[i+1]) { int t; t=a[i]; a[i]=a[i+1]; a[i+1]=a[i]; } } free(a); return 0; }

#include int main() { int a[20]={8,5,3},b[10]={9,7,5,5,5,3,3,1},t[30]={0};//删除相同项,合并后有序. int *p1,*p2,*p3=t,*p4; cout

告诉你一个很简单的程序,也是最适合数组运算的#pragma warning(disable: 4786)#include#include using namespace std;int main(){ int data[8]={,6,4,2,1,2,4,6,,1}; setsdata; for (int n=0;n::reverse_iterator it=sdata.rbegin();it!=sdata.rend();++it) cout 评论0 0 0

只要在输出的时候过滤掉重复的数就行了(若后一个等于前一个,不输出后一个).

#includeint main(){ int a[100],n,t,s,i,k; scanf("%d",&n); for(s=0;n;s++) { t=n%10; n=n/10; a[s]=t; } for(i=0;i<s/2;i++) { k=a[i]; a[i]=a[s-i-1]; a[s-i-1]=k; } printf("%d",a[0]); for(i=1;i<s;i++) printf(" %d",a[i]); return 0;}

两种方案:①直接将两个数组合为一个,去重后,用C++的sort()函数排序.②不断比较两个序列里的数,哪个比较小,就将哪个数放入新数组.同时判断是否相等,相等要去重.

相关搜索:

网站地图

All rights reserved Powered by www.ylrr.net

copyright ©right 2010-2021。
www.ylrr.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com