有什么黄的直播平台:如果1、3、5、7、9、11、13这6个数随机排列为2组,如何编程?

来源:百度文库 编辑:高考问答 时间:2024/04/19 18:17:09
最好用PASCAL 或C语言

如果要追求效率,需要比较复杂的数据结构。你这里数字比较少,就用个简单的办法吧。

#include<stdio.h>
#include<stdlib.h>
void main()
{

int data[]={1,3,5,7,9,11,13};
int i,j;
randomize();
j=random(5)+1;
printf("first:");
for(i=1;i<=3;i++)//随机抽出三个数
{
while(data[j]==0)//如果数组位置为0则继续随机选择
{
j=random(5)+1;
}
printf("%d ",data[j]);
data[j]=0;//一旦数组被选中过,必须置0防止以后重复选择
}
printf("\nsecond:");//将剩余的非0的数字分为第二组
for(i=0;i<=6;i++)
{
if(data[i]!=0)
printf("%d ",data[i]);
}
getch();
}
运行结果:
first:9 7 5
second:1 3 11 13

first:11 3 7
second:1 5 9 13

如果你想把结果更加随机化和一般化,可以自己再修改一下代码哦
如果你是完美主义者,可以改成链表结构,这样效率会高不少