gpt4 book ai didi

c++ - 删除和存储数组中的重复项

转载 作者:太空宇宙 更新时间:2023-11-04 15:46:03 26 4
gpt4 key购买 nike

这个程序的目标是从数组中删除重复项

编写一个程序,从用户那里输入一个包含 10 个整数的数组,并删除重复的数组元素。

这是一些示例输出:请输入 10 个整数,每输入一个后按回车键:5个7510755个80105个5个50您输入了 5 个唯一号码:5 75 10 80 50

到目前为止,这是我的代码

#include <iostream>
using namespace std;

int main()
{
int myint[11];
int i,x,count=10;

cout << "Please input 10 integers, hitting return after each one \n";
for(i=0;i<10;i++){
cin>> myint[i];
}

for(i=0;i<=10;i++)
{
for(x=i+1;x<=10;x++)
{
if(myint[x]==myint[i])
{
count--;
for(i=x;i<=count;i++)
{ myint[i] = myint[i+1];
}
}
}

}
cout << endl;
cout << " You entered "<< count << " unique numbers: " << endl;

for(i=0;i<count;i++){
cout << myint[i] << " ";
}
return 0;
}

这是我的输出请输入10个整数,输入一个后回车5个7510755个80105个5个50

您输入了 7 个唯一数字:5 75 10 75 80 10 5

必须删除或重写重复项,并且应将唯一编号放入新数组中,而不仅仅是显示在屏幕上。我不完全确定我的错误在哪里。似乎在循环第一次运行的某个地方,它似乎无论如何都会找到一个重复项并将数组中的其余循环抛出?我有点迷路了。任何帮助都表示赞赏。谢谢。

最佳答案

由于问题被标记为 C++,您不妨在代码中使用 C++ 习语。让 sortunique 完成繁重的工作。

#include <iostream>
#include <vector>
using namespace std;

int main(int argc, const char * argv[])
{
vector<int> v;

cout << "Please input 10 integers, hitting return after each one \n";
for( int i = 0; i < 10; i++ ) {
int num;
cin >> num;
v.push_back(num);
}

sort( v.begin(), v.end() );
v.erase( unique( v.begin(), v.end() ), v.end() );

cout << endl << " You entered " << v.size() << " unique numbers: " << endl;
copy( v.begin(), v.end(), ostream_iterator<int>( cout, " " ) );
}

关于c++ - 删除和存储数组中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com