
用C语言定义一个50个数的数组,用1~100之间的随机数填充,要求这50个数中不能出现重复,然后排序输出。
2个回答
2013-11-25
展开全部
数组初始化为0,用 memset 等方法
随机数用 srand rand 得到,然后将数组对应的元素设置为1
解决冲突判断数组对应位置有无设置为1
排序输出在数组置1过程中就实现了
随机数用 srand rand 得到,然后将数组对应的元素设置为1
解决冲突判断数组对应位置有无设置为1
排序输出在数组置1过程中就实现了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-25
展开全部
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void main()
{
srand(unsigned(time(NULL)));
int a[50];
for (int i = 0;i < 50;i++)
{
a[i] = rand() % 100 + 1;
for (int j = 0;j < i;j++)
if (a[i] == a[j])
a[i] = rand() % 100 + 1;
}
for (int i = 0;i < 50;i++)
for (int j = i;j < 50;j++)
if (a[i] > a[j])
{
int t = a[i];
a[i] = a[j];
a[j] = t;
}
for (int i = 0;i < 50;i++)
printf("%d ",a[i]);
printf("\n");
}
#include <time.h>
#include <stdlib.h>
void main()
{
srand(unsigned(time(NULL)));
int a[50];
for (int i = 0;i < 50;i++)
{
a[i] = rand() % 100 + 1;
for (int j = 0;j < i;j++)
if (a[i] == a[j])
a[i] = rand() % 100 + 1;
}
for (int i = 0;i < 50;i++)
for (int j = i;j < 50;j++)
if (a[i] > a[j])
{
int t = a[i];
a[i] = a[j];
a[j] = t;
}
for (int i = 0;i < 50;i++)
printf("%d ",a[i]);
printf("\n");
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |