讨论 / 明明的随机数
cmflyme 2017-10-04 21:21:25
点我顶贴 收藏 删除
我自己运行没有错误啊。正确输出。为什么就是WA0,代码如下:

#include<stdio.h>

#include<ctype.h>

#include<time.h>

#include<stdlib.h>

#define N 100

int main(void)

{ int input;

int i;

int j;

int temp;

int rand_num[N];

int rand_num_new[N];

int index=0;

printf(" ");

scanf("%d",&input);

srand((unsigned int)time(0));

for(i=0;i<input;i++)

{

rand_num[i] =rand()%1000+1;

}

for(i=0;i<input;i++)

{

printf(" %d",rand_num[i]);

}

printf("\n");

for(i=0;i<input;i++)

{

for(j=0;j<input-1;j++)

if(rand_num[j]>rand_num[j+1])

{

temp=rand_num[j];

rand_num[j]=rand_num[j+1];

rand_num[j+1]=temp;

}

}

for(j=0;j<input;j++)

{

if(j==(input-1))

rand_num_new[index]=rand_num[j];

else if(rand_num[j]==rand_num[j+1])

rand_num_new[index]=rand_num[j];

else

{

rand_num_new[index]=rand_num[j];

index++;

}

}

printf(" %d\n",index+1);

for(i=0;i<=index;i++)

{

printf(" %d",rand_num_new[i]);

}

printf("\n");

return 0;

}

#1 Juaran@2017-10-05 07:21:48
回复 删除
一个注释都没有,看不了
#2 Artrix@2017-10-19 03:28:55
回复 删除
要这么麻烦么。。。

#include <iostream>

#include <algorithm>

using namespace std;

int main(){

int n,clearCount=0;

cin>>n;

int nums[n],clearNums[n];

for (int i=0;i<n;i++){

cin>>nums[i];

}

sort(nums,nums+n);

for (int i=0;i<n;i++){

bool inside=false;

for (int j=0;j<clearCount;j++){

if (nums[i]==clearNums[j]){

inside=true;

}

}

if (!inside){

clearNums[clearCount]=nums[i];

clearCount+=1;

}

}

cout<<clearCount<<endl;

for (int i=0;i<clearCount;i++){

cout<<clearNums[i]<<" ";

}

cout<<endl;

}

#3 Artrix@2017-10-19 03:28:59
回复 删除
#include <iostream>

#include <algorithm>

using namespace std;

int main(){

int n,clearCount=0;

cin>>n;

int nums[n],clearNums[n];

for (int i=0;i<n;i++){

cin>>nums[i];

}

sort(nums,nums+n);

for (int i=0;i<n;i++){

bool inside=false;

for (int j=0;j<clearCount;j++){

if (nums[i]==clearNums[j]){

inside=true;

}

}

if (!inside){

clearNums[clearCount]=nums[i];

clearCount+=1;

}

}

cout<<clearCount<<endl;

for (int i=0;i<clearCount;i++){

cout<<clearNums[i]<<" ";

}

cout<<endl;

}

#4 silentrain@2017-11-02 06:03:16
回复 删除
#include <iostream>

using namespace std;

int a[1001];

void quicksort(int a[],int low,int high){

if(low<high){

int i=low,j=high,s=a[low];

while(i<j){

while(i<j&&a[j]>=s) j--;

if(i<j) a[i++]=a[j];

while(i<j&&a[i]<=s) i++;

if(i<j) a[j--]=a[i];

}

a[i]=s;

quicksort(a,low,i-1);

quicksort(a,i+1,high);

}

}

int main(){

int n;

cin>>n;

for(int i=0;i<n;i++){

cin>>a[i];

}

quicksort(a,0,n-1);

for(int i=1;i<=n;i++){

while(a[i-1]==a[i]){

for(int j=i;j<n;j++){

a[j]=a[j+1];

}

n--;

}

}

cout<<n<<endl;

for(int i=0;i<n;i++){

cout<<a[i]<<" ";

}

return 0;

}

查看更多回复
提交回复