C++ 将一个一维数组中相同的元素删除到只剩一个,然后从大到小的顺序输出

#include<iostream.h>
#include<iomanip.h>
void main()
{
int i,j,a[6],b[6],temp,e,q,x,y;
for(i=0;i<6;i++)
{
cout<<"请输入数:";
cin>>a[i];
}
e=0;
for(i=0;i<6-e;i++)
{
for(j=1;j<6-i-e;j++)
{ if(a[i]==a[i+j])
{ temp=a[i+j];
a[i+j]=a[5-e];
a[5-e]=temp;
e++;
}
}
}
for(x=0;x<6-e;x++)
{
b[x]=a[x];
}
for(x=0;x<6-e;x++)
for(y=0;y<5-e-x;y++)
{
if(b[y]<b[y+1])
{
q=b[y];
b[y]=b[y+1];
b[y+1]=q;
}
}
for(x=0;x<6-e;x++)
{
cout<<setw(5)<<b[x];
}
cout<<endl;
}
看看那里出错了

完全正确...

我有用VC6.0+XP 调试了一下,很正确!

别累我。。。你的输入是什么。。

#include "stdafx.h"
#include "iostream.h"
#include <iostream.h>
#include <iomanip.h>

void main()
{
int i,j,a[6],b[6],temp,e,q,x,y;
for(i=0;i<6;i++)
{
cout<<"请输入数:";
cin>>a[i];
}
e=0;
for(i=0;i<6-e;i++)
{
for(j=1;j<6-i-e;j++)
{ if(a[i]==a[i+j])
{ temp=a[i+j];
a[i+j]=a[5-e];
a[5-e]=temp;
e++;
}
}
}
for(x=0;x<6-e;x++)
{
b[x]=a[x];
}
for(x=0;x<6-e;x++)
for(y=0;y<5-e-x;y++)
{
if(b[y]<b[y+1])
{
q=b[y];
b[y]=b[y+1];
b[y+1]=q;
}
}
for(x=0;x<6-e;x++)
{
cout<<setw(5)<<b[x];
}
cout<<endl;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-18
void main()
{
int i,j,a[6],b[6],iCount1;
int iCount=6;
for(i=0;i<iCount;i++)
{
cout<<"请输入数:";
cin>>a[i];
}
iCount1=0;
b[0]=a[0];
for(i=1;i<iCount;i++)
{
for(j=0;j<iCount1;j++)
{
if(a[i]==b[j])
break;
}
if(j!=iCount1)
b[iCoun1++]=a[i];
}

for(i=0;i<iCount1;i++)
cout<<b[i];
}
第2个回答  2008-03-18
程序没错,可能你的输入有问题。

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网