|

楼主 |
发表于 2021-4-8 21:22:00
|
显示全部楼层
大家好,经过我一个小时的研究,终于知道怎么弄了。
所有都不改变。
添加一个头文件,如:arr.h
打开这个头文件,把写在main主函数外的,需要实用的函数在里面声明一遍。
如: int buchongfu(int,int,int);
void chongfu(int,int,int);
再将#pragma once这句话放在main函数所在源文件的第一句。
在添加头文件#include“arr.h”
就可以了。
最后把我写好的这个随机数生成器送给大家。
代码上传不了。。。
这个是主函数main;
代码如下:
#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include"重复.h"
int main(void)
{
int xiaoshu=0, dashu=0, shu=0,chongfushu=0;
printf("请输入随机数个数(最多1000):"),scanf_s("%d", &shu);
printf("请输入最大随机数:"),scanf_s("%d", &dashu);
printf("请输入最小随机数:"),scanf_s("%d", &xiaoshu);
printf("是否允许重复(允许为0,不允许为1):"),scanf_s("%d", &chongfushu);
if (chongfushu==0)
{
chongfu(dashu, xiaoshu,shu);
return 0;
}
else
{
buchongfu(dashu, xiaoshu,shu);
}
return 0;
}
这个是不重复的代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int buchongfu(int da, int xiao, int shu)
{
int arr[1000];
int sui = 0;
srand((size_t)time(NULL));
for (int i = 0; i < shu; i++)
{
sui = rand() % (da + 1) + xiao;
for (int k = 0; k <= i; k++)
{
if (sui == arr[k])
{
i--;
break;
}
if (i == k)
{
arr[i] = sui;
}
}
}
for (int i = 0; i < shu; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
这个是重复随机数代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void chongfu(int da,int xiao,int shu)
{
//da = 10, xiao = 0, shu = 20;
srand((size_t)time(NULL));
for (int i = 0; i < shu; i++)
{
printf("%d ", rand() % (da + 1) + xiao);
}
return;
}
头文件,名字为重复.h(如果直接照抄就不要改名字);
int buchongfu(int,int,int);
void chongfu(int,int,int);
感谢各位的帮助。。。 |
|