按照题目要求编写的C++程序如下
#include<iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
void sort(int *arr,int n)
{
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(arr[i]>arr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
int remove(int *arr,int n)
{
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(arr[i]==arr[j]){
for(int k=j+1;k<n;k++){
arr[k-1]=arr[k];
}
n--;
j--;
}
}
}
return n;
}
int main()
{
int N,i,M,a[100];
srand((unsigned)time(NULL));
cin>>N;
if(N>100||N<=0){
cout<<"超出0< N <=100范围";
return 0;
}
for(i=0;i<N;i++)
{
a[i]=rand()%1000+1;
if(i==N-1)
cout<<a[i]<<endl;
else
cout<<a[i]<<" ";
}
M=remove(a,N);
cout<<M<<endl;
sort(a,M);
for(i=0;i<M;i++)
{
if(i==M-1)
cout<<a[i];
else
cout<<a[i]<<" ";
}
return 0;
}
追问http://acm.wust.edu.cn/submitpage.php?id=1310&soj=0
oj系统,不通过,兄弟,麻烦再看一下
追答你再试试这个版本
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void selectsort(int *arr,int n)
{
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(arr[i]>arr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
int removeduplicate(int *arr,int n)
{
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(arr[i]==arr[j]){
for(int k=j+1;k<n;k++){
arr[k-1]=arr[k];
}
n--;
j--;
}
}
}
return n;
}
int main()
{
int N,i,M,a[100];
srand(time(NULL));
cin>>N;
for(i=0;i<N;i++)
{
a[i]=rand()%999+1;
if(i==N-1)
cout<<a[i]<<endl;
else
cout<<a[i]<<" ";
}
M=removeduplicate(a,N);
cout<<M<<endl;
selectsort(a,M);
for(i=0;i<M;i++)
{
if(i==M-1)
cout<<a[i];
else
cout<<a[i]<<" ";
}
return 0;
}