题解 | #明明的随机数#题目有歧义,还以为是合并多组数据处理,原来是分组处理,明白这个就好了
明明的随机数
http://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
#include <stdio.h> #include <string.h> #define MAX_LEN 1000+1
int check_repeat(int *inputs,int ch,int len) { int i =0; for(i=0;i<len;i++) { if(ch == inputs[i]) { return 0; } } return -1; }
int sort_func(int *pt,int num)
{
int num_sum = num;
int *inputs = pt;
int i =0,j=0,temp=0,count=0;
for(i=1,count=1;i<num_sum;i++)
{
if(0 != check_repeat(inputs,inputs[i],count))
{
inputs[count] = inputs[i];
count++;
}
}
/排序/
for(i=1;i<count;i++)
{
temp = inputs[i];
for(j=i-1;j>=0;j--)
{
if(temp < inputs[j])
{
inputs[j+1]=inputs[j];
}
else
{
break;
}
}
inputs[j+1] = temp;
}
for(i=0;i<count;i++)
{
printf("%d\n",inputs[i]);
}
return 0;
}
int main(void)
{
int inputs[MAX_LEN]={0};
int i=0,j=0;
int num_sort = 0;
int num_sum = 0;
while(1)
{
num_sort = 0;
i=0;
if(scanf("%d",&num_sort)==EOF
|| 0 == num_sort)
{
break;
}
if(num_sort > 1000)
{
printf("input err num:%d\n",num_sort);
return 0;
}
for(j=0;j<num_sort;j++)
{
scanf("%d",&inputs[i]);
i++;
}
sort_func(inputs,num_sort);
}
return 0;
}