本文目录一览:
- 1、用C语言如何将一个一维数组中的元素随机排序
- 2、C语言 随机数组排序
- 3、C语言数组随机赋值排序
- 4、c语言如何把一组连续的数随机排开
- 5、。c语言随机一个数组,并排序输出,我是新手,别笑我,大神帮我看看哪里错了
用C语言如何将一个一维数组中的元素随机排序
#include
#include
#include
intmain()
{
inti,j,n,k,t,a[100];
srand((unsigned)time(NULL));
p
利用rand()函数产生随机数字,rand()%n产生小于n的随机数,然后交换。
运行的结果:
#include
#include
intmain()
{
intnbs
利用rand()函数产生随机数字,rand()%n产生小于n的随机数,然后交换。
扩展资料
C语言排序法
在一层循环找出最小数的下标,该下标用min保存,直到比较完整个数组,即可找到最小的数,然后将该数放入数组的第一位。
这样只能排好一个元素,于是需要再嵌套一层外层循环即可排好所有元素。第二次循环就不用再比较第一个元素了,因为第一个元素已经排好,依次类推,每一次循环就会排好一个,进行n-1次循环即可排好所有元素。
C语言 随机数组排序
#include "stdlib.h"
#include "stdio.h"
main()
{
int i,j,k,a[10000],b[10000],n,t;
printf("please input the number of integer: ");
scanf("%d",n);
for(i = 0; i n; i++)
{
a[i] = random(80) + 20; /*生成数组*/
}
for(i = 0;i n;i++) /*初始化元素数量*/
b[i] = 1;
for(i = 0; i n; i++)
{
for(j = i + 1;j n;j++)
{
if(a[i] == a[j])
{
b[i]++; /*计数*/
n--;
for(k = j;k n;k++) /*去掉数组中重复值*/
a[k] = a[k + 1];
j--;
}
}
}
for(i = 1;i n;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;
t = b[j];b[j] = b[j + 1];b[j + 1] = t;
}
printf("\n Integer numbers\n");
for(i = 0;i n;i++) /*输出*/
{
printf(" %d %d\n",a[i],b[i]);
}
getch();
}
C语言数组随机赋值排序
#include stdio.h
#include stdlib.h
int cmp(const void* a, const void* b)
{
return *(int*)a - *(int*)b;
}
int main()
{
int k, i;
int* arr;
printf("请输入一个3位数作为一维数组的维数:");
scanf("%d", k);
printf("生成随机数组:\n");
arr = (int*)malloc(k * sizeof(int));
for(i = 0; i k; ++i)
{
arr[i] = rand();
printf("%d ", arr[i]);
}
printf("\n");
printf("排序后的数组:\n");
qsort(arr, k, sizeof(int), cmp);
for(i = 0; i k; ++i)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
c语言如何把一组连续的数随机排开
1 定义一个辅助数组,和原本数组中总数相同。
2 对辅助数组进行随机赋值。
3 对辅助数组进行排序,交换数据时,同时交换源数组中的相同位置。
4 当辅助数组有序后,源数组已经完成随机排序。
代码如下:
void radom_sort(int *a, int l)
{
int *b;
int i,j,t;
b = (int*)malloc(sizeof(int)*l);
srand(time(NULL));
for(i = 0; i l; i ++)
b[i] = rand();
for(i = 0; i l-1; i ++)
for(j = i + 1; j l; j ++)
{
if(b[i]b[j])
{
t = b[i];
b[i] = b[j];
b[j] = t;
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
。c语言随机一个数组,并排序输出,我是新手,别笑我,大神帮我看看哪里错了
选择排序。应该是a[min]与a[i]交换,而不是a[j]与a[i]。代码:
#includestdio.h
#includestdlib.h
#includetime.h
int main()
{
int a[10],min,i,j;
unsigned int k;
srand((unsigned)time(0));
printf("原随机数组位:");
for(i=0;i10;i++)
printf("%d ",a[i]=rand());
for(i=0;i9;i++)
{
min=i;
for(j=i+1;j10;j++)
{
if(a[j]a[min]) min=j;
}
k=a[i];
a[i]=a[min]; //!!!! 交换a[i] 与 a[min]
a[min]=k; //!!!!!
}
printf("\n排序后数组为:");
for(i=0;i10;i++)
printf("%d ",a[i]);
putchar('\n'); //!!少了一个'
system("pause");
return 0;
}
谁都是从新手开始的,请加油~~~