最近在学习C语言数组,每次都要自己手输入一些测试数据,很是麻烦,因此查了一下怎么样产生随机数组,写法固定,源码如下
#include<stdio.h>
//产生随机数,需要引入下面两个头文件
#include<stdlib.h>
#include <time.h>
//设定数组长度
#define I_ARR_LENTH 300
int main()
{
//创建数组
int i_arr[I_ARR_LENTH];
//声明及调用产生随机数组的函数为数组随机赋值
int* func_ip_randarr(int i_arr_rand[], int i_arrlen, int i_ranf, int i_rane);
func_ip_randarr(i_arr, I_ARR_LENTH, 1, 500);
return 0;
}
//函数形参的含义依次是传入数组的名字(数组名做函数形参时和指针完全等价和不做函数形参的数组名不等价,要记住这一点),数组长度,随机数的最大值和最小值
int* func_ip_randarr(int i_arr_rand[], int i_arrlen, int i_ranf, int i_rane)
{
srand((unsigned)time(NULL));
for (int i = 0; i < i_arrlen; i++)
{
//srand((unsigned)time(NULL));要放在for循环外面
i_arr_rand[i] = rand() % (i_rane - i_ranf + 1) + i_ranf;//固定格式rand()%(b-a+1)+a的含义是:产生a到b的随机数,其他种形式都可以用这个公式带入求得
}
printf("产生的范围是%d到%d之间的%d个随机数为:\n", i_ranf, i_rane, i_arrlen);
//声明及调用遍历函数将数组元素输出
void printsort(int i_arr[], int i_lenth);
printsort(i_arr_rand, I_ARR_LENTH);
return i_arr_rand;//如果值要被主函数调用就可以带返回值,如果-是单纯的想输出,那么不带写成void函数不带也中
}
//遍历输出函数:
void printsort(int i_arr[], int i_arrlen)
{
printf("\n----------------------------------------------------------------------------------------------\n");
for (int i = 0; i < i_arrlen; i++)
{
if ((i) % 5 == 0) //输出5个就换行 有多种写法 0除以任何数的余数都为0
{
putchar(10);//换行
//printf("%c", 10);
}
printf("%15d", i_arr[i]);
}
}