讨论 / 有毒,说好的计算机生成的随机数呢
糯米粽子 2017-11-19 00:25:35
点我顶贴 收藏 删除
#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#define M 100

int main(void)

{

void print(int *,int);

void sort(int *,int);

int deleteSame(int *,int);

int num=0;

int i=0,j=0;

int array[M]={0};

scanf("%d",&num);

// srand((unsigned)time(NULL));//产生随机数

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

{

scanf("%d",array+i);

// array[i] = rand()%100+1;

}

sort(array,num);

num = deleteSame(array,num);

printf("%d\n",num);

print(array,num);

return 0;

}

//输出函数

void print(int *num,int length)

{

int i=0;

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

{

if(i==length-1)

{

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

}

else

{

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

}

}

printf("\n");

}

//排序函数(冒泡)

void sort(int *num,int length)

{

int i=0,j=0;

int tmp=0;

for(i=0;i<length-1;i++)

{

for(j=0;j<length-1-i;j++)

{

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

{

tmp = num[j];

num[j] = num[j+1];

num[j+1] = tmp;

}

}

}

}

//去重函数

int deleteSame(int *num,int length)

{

void move(int *,int,int);

int i=0;

int tmpNow=0,tmpPre=0; //tmpPre记录前一位,tmpNow记录当前位

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

{

tmpNow = num[i];

if(tmpNow==tmpPre) //如果当前位和前一位相等,则存在重合,进行移位(去掉当前位)

{

move(num,i,length);

length--;

}

tmpPre = num[i];

}

return length;

}

//移位函数(去重时使用)

void move(int *num,int x,int length)

{

int i=0;

for(i = x;i<length-1;i++)

{

num[i] = num[i+1];

}

}

#1 fnoichzhe@2017-11-19 00:49:25
回复 删除
什么意思,宝宝没看懂。。。
查看更多回复
提交回复