初学者求一道C语言的答案

来源:百度知道 编辑:UC知道 时间:2024/05/31 10:20:56
题目:用随机数产生100个0到30的整数,把其中重复出现的数删除得只剩一个,完成删除操作的数组用选择排序从小到大输出。
谢谢!
有人来帮帮忙吗?

昨晚就看到你的题了,太累就没帮你写
现在帮你做做
首先你要知道,要想删除重复的数,必须先排序,然后删除
程序如下,祝你进步~

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 100
void main()
{
int a[N];
int i,j,k,temp;
srand(time(NULL));
for(i=0;i<N;i++)
a[i]=rand()%31;
printf("随即产生的数组如下:\n"); //对数组进行输入
for(i=0;i<N;i++)
{
printf("%d ",a[i]);
if((i+1)%10==0)
printf("\n");
}

for(i=0;i<N-1;i++) //选择法进行排序
{
k=i;
for(j=i+1;j<N;j++)
{
if(a[k]>a[j])
k=j;
}
if(k!=i)
{
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
}

i=j=0;
while(i<N) //删除重复数字,只留一个
{
if(a[j]!=a[i])
a[++j]=a[i];
i++;
}

printf("删除重复数后的数组如下:\n");