C语言对一维数组中的数据随机排列/全排列。
1、c和ab紧挨着:26个字母随机排列的方法有:A(26,26)=26!c在ab之前的排列方法有:A(25,25)=25!则字母c在ab之前的概率是:25!/26!=1/26 2、若c和ab不一定靠在一起:c要么在ab之前,要么在ab之后,两种情况的概率是相等的 则字母c在ab之前的概率是:1/2 c要么在ba之前,要么在ba...
首先不管是不是通过编译。做到随即排列,需要用到随机数产生函数。include <stdio.h> include main(){ int i;int cp1[10];clrscr();srand((unsigned)time(NULL)); /*随机数发生器,时间作为种子 */ for(i=0;i<10;i++){ cp1[i]=rand()%100+1;/*rand产生的随机数字*/ } textcolor(...
5个字母随机排列的方法有:A(5,5)=5x4x3x2x1=120 E在D之后的排列方法有:A(4,4)=4x3x2x1=24 则字母E在D之后的概率是:24/120=1/5 2°、若E和D不一定靠在一起:那么E要么在D之前,要么在D之后,两种情况的概率是相等的 则字母E在D之后的概率是:1/2 ...
我用c++来着 不过貌似和c差不多 void xipai(int a[],int b){ for(int i=0,j,k;i
include define N (10)void sort(int a[],int n){ int i,j,t;for(i=0;i<N;++i){ for(j=0;j<n-i-1;++j){ if(a[j]>a[j+1]){ t=a[j];a[j]=a[j+1];a[j+1]=t;} } } } int main(){ int a[N],i;srand(time(NULL));for(i=0;i<N;++i){ a[i]=r...
,i[2]变数,但结果是不等于i[1],却又等于i[0]*/ /* 另外,最好写成a[j]==a[i],a[i]在==后面,表示a[i]等于a[j],阅读的习惯*/ a[i]=rd();改为 if(a[j]==a[i]) { i--; /* 消除上一个循环的i++的值,表示要重复第i个数的随机获取动作 */ break;} ...
include <stdio.h>#include "stdlib.h"#include "time.h"int main(void){ int a[20],i,j,k,t; srand((unsigned)time(NULL)); for(t=i=0;i<20;a[i++]=rand()%1000); for(i=0;i<20;i++){ for(k=i,j=k+1;j<20;j++) if(a[k]...
可以采用冒泡排序~include <stdio.h>#define elemType int /*元素类型*/#define ASC 0 /*升序*/#define DESC 1 /*降序*/#define LEN 100 /*数组长度*//*录入数组*/void inputArr (elemType arr[], int len) {int i;for (i=0; i<len; i++)scanf ("%d",&arr[i]);putchar ('\...
int main(void){ int nDec[100],i,j,k;srand((unsigned)time(NULL));for(i=0;i<100;nDec[i++]=rand());for(i=0;i<100;i++){ for(k=i,j=k+1;j<100;j++)if(nDec[k]>nDec[j]) k=j;if(i!=k){ j=nDec[i];nDec[i]=nDec[k];nDec[k]=j;} printf("%d ",nDec[...