#include <stdlib.h>#include <stdio.h>#include <time.h> int randoms(int number) { return (int)(number/(float)RAND_MAX * rand()); } int main() { int i; srand((unsigned)time(NULL)); for(i=1;i<=24;i++) printf("%d\n",(int)(randoms(10000))); system("pause"); }
如果什么都不考虑(4位数:1000~9999),这样就行了吧:(int) ((float) rand() / RAND_MAX * (9999 - 1000 + 1)) + 1000 恩,还是功夫不到家,这个好:srand((unsigned)time(NULL)); //产生随机数种子 printf("%d\n",rand()%9000+1000); //输出随机数
将1-9随机乱序存放到数组,然后随机一个数组下标,依次取4个数[下标取模]
给你个思想吧 随机函数网上搜下就知道了 你可以随机4次 0~9的整数,比较下互不相等就行了,然后分别乘以1、10、100、1000,其中第四位数不为0就行了
可以将生成的随机数放入数组中,每次遍历数组,有相同的重新生成随机数.知道生成4个即退出循环.#include <stdio.h>#include <stdlib.h>#include <time.h> int main() { int num[4], cnt = 0, n; srand(clock()); // 设置随机数种子 while (cnt < 4) { n
你就写成产生4个一位的随机数,只是1~9,然后每产生一个要判断下跟之前的是否相等,如果相等就重新产生个就行了
#include#includeusing namespace std;void main(){ char s[4]; int n,k; cin>>s; sort(s,s+4); n=(s[0]-'0')*1000+(s[1]-'0')*100+(s[2]-'0')*10+(s[3]-'0'); k=(s[3]-'0')*1000+(s[2]-'0')*100+(s[1]-'0')*10+(s[0]-'0'); cout 追问: 用的是C++,题目是:要求输入一
可以先把0-9放入一个数组,然后对第一位,随机生成一个10以内的数如:rand()%8+1(避免高位是0的情况),产生的随机数来取数组中的数,并把数组在该位置以后的数前移,即删掉该数字..第二位用rand()%8,得到,从数组中取出该对应位置的数字作为第二位,然后删掉该数组第三位用rand()%7,第四位用rand()%6这样就可以生成一个四位无重复数字的四位数了
Rnd*1000
#include #include void main() { srand((unsigned)time(NULL)); bool flig=true; int a[4]; for (int i=0,j=0;i!=15;++i) { if (flig) { printf("开始猜第%d个数:\n",j+1); a[j]=rand()%100+1; //产生 1~100的随机数 // printf("%d",a[j]); if (j==3) { printf("谢