1到25的数字,如何通过C语言实现随机排列
首先不管是不是通过编译。
做到随即排列,需要用到随机数产生函数。
#include <stdio.h>
#include <time.h>
main()
{
int i;
int cp1[10];
clrscr();
srand((unsigned)time(NULL)); /*随机数发生器,时间作为种子 */
for(i=0;i<10;i++)
{
cp1[i]=rand()%100+1;/*rand产生的随机数字*/
}
textcolor(12);
for(i=0;i<10;i++)
{
printf("\n");
cprintf("%d",cp1[i]);
}
getch();
}
以上是打印1到100的随机数字。
你说的要随机排列25个数字。
必须要产生25个随机数字。处理方法有很多,可以采用让随机数产生为1~25的数字,但是要保证每个数字不一样。不能有重复,这个可以通过比较来完成。然后可以一一对应输出,或者直接输出产生的随机数也可以。另外一种方法是允许有重复,但是必须给每个数字1~25和产生的25个随机数字进行一一对应编号,然后首先按照随机数对应的输出,如果遇到相同的随机数,就随机数先后顺序排下来对应输出。方法有很多,自己可以思考一下。
首先,使用C语言中的rand()函数生成一个介于1到25之间的随机数。
然后,将生成的随机数与一个已经排好序的数组中的元素进行交换,以实现随机排列。交换的次数可以根据需要进行多次,以增加随机性。
这种方法的原理是通过将已排序的数组中的元素随机交换,从而达到随机排列的效果。
使用rand()函数时,可以使用srand()函数设置随机数的种子,以确保每次运行程序时得到不同的随机序列。
这种方法可以用于实现任意长度的随机排列。
随机排列的数字是可以通过C语言实现的
在C语言中,可以通过标准库中的rand函数来生成随机数,可以利用一个存储数组的方式进行随机排列,可以使用洗牌算法或者交换法来进行
以下是洗牌算法的实现步骤:定义一个长度为的数组,存储的数字
循环遍历数组,每次循环时,随机生成一个整数,将该整数作为数组下标,与当前循环的数组元素进行交换
循环次后,数组中的元素就随机排列了
最后将随机排列的数组输出即可
c语言任意输入10个数,先将其按由大到小的顺序排列
对于少数的数字的排列,可以通过简单的if嵌套语句便可将所有情况列举出来;但是一旦要比较的数字较多,这种方法便缺少了可执行性;因此,我们可以采用数组的思想来进行编程;此处以:将10个数按从小到大排列输出 举例:#include"stdio.h"#define N 10int main (){ int a[N]; int i,j,t; printf("Please input %d numbers:\n",N); for(i<0;i<N;i++) { scanf("%d",&a[i]); } for(i=1;i<=N-1;i++) { for(j=0;j<N-i;j++) { if(a[j]>a[j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t; } } } printf("The resortrd numbers is :\n"); for(i=0;i<N;i++) { printf("%-4d",a[i]); }}附:程序开头采用了定义一个宏常量的方法,可以通过改变该常量来对程序进行整体的改变;增加了程序的灵活性,方便对源程序进行修改;如果要按从大到小的排列方式进行排列,仅仅需要更改程序中的一处,此处便不再详细说明,自己探讨^_^