C语言随机函数:用0到9这10位数随机输出4位.输出100次后停止...
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言随机函数:用0到9这10位数随机输出4位.输出100次后停止...相关的知识,希望对你有一定的参考价值。
谁给我编个程序..贴下结果出来 行么??谢谢
#include <stdlib.h>
#include<stdio.h>
#include<time.h>
void main()
for(int i=0;i<100;i++)
for(int j=0;j<4;j++)
int a;
a=rand()%10;
printf("%d",a);
printf(" ");
参考技术A
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int num[5];//数字
void main()
srand(time(NULL));
int n = 100;//100个数字
while(n--)//输出100次
while((num[0]=rand()%10)==0);//首位不为0!
num[1]=rand()%10;
num[2]=rand()%10;
num[3]=rand()%10;
int i;
for(i=0;i<4;++i)
printf("%d",num[i]);
puts("");
参考技术B 每次输出来的4个数字允许重复吗?
直接连续调用rand(),就可以解决了! 参考技术C #include <stdio.h>
#include <iostream>
#include <time.h>
using namespace std;
void main()
srand(time(NULL));
for(int i=0;i<100;i++)
cout<<rand()%10<<" "
<<rand()%10<<" "
<<rand()%10<<" "
<<rand()%10<<" "
<<endl;
参考技术D 程序:
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
int i;
srand(time(0));
for (i = 0; i<100; i++)
printf("%d%d%d%d\n",rand()%10,rand()%10,rand()%10,rand()%10);
return 0;
//---------------------------------------------------------------------------
一份运行结果:
6808
2648
3864
5307
6456
0773
9716
6424
2079
1432
6467
0140
4125
3015
2839
2515
9986
2487
9850
4739
6803
5291
0531
6305
6650
3157
8760
1318
7652
8718
5299
1184
8894
1737
6733
1030
3085
4408
4217
4819
0081
1656
7424
5006
0503
2556
3169
3999
1015
7872
2624
3410
2219
6279
1978
9237
3272
2849
2975
8401
5649
3517
8347
2422
7692
4086
1584
7429
6610
8604
4890
6288
4787
9600
9024
0589
3174
5273
5816
5419
2631
1344
6762
3156
0044
6293
5100
5264
8716
8493
0374
7663
7519
9597
1858
2732
8246
6543
4904
9304
参考资料:SK
C语言如何随机输出一个字符串?
比如说,我有100个人的名字(均大于一个字符),现在要求随机输出其中一人的名字?有人知道怎么设计这个程序么?不需要源码,只要思路就行。
PS:除了说什么建立100个变量,每个里面存个名字,最后用switch这种办法。这个不考虑
随机输出一个字符串,其实就是要随机生成一个字符串并输出。
要实现这一点,可以通过rand函数来实现。
具体示例代码如下:
#include <stdio.h>#include <stdlib.h>
#include <time.h>
#define STR_LEN 10//定义随机输出的字符串长度。
#define CHAR_MIN \'a\'
#define CHAR_MAX \'z\' //定义输出随机字符串每个字符的最大最小值。
int main()
char str[STR_LEN + 1] = 0;
int i;
srand(time(NULL));//通过时间函数设置随机数种子,使得每次运行结果随机。
for(i = 0; i < STR_LEN; i ++)
str[i] = rand()%(CHAR_MAX-CHAR_MIN + 1) + CHAR_MIN; //生成要求范围内的随机数。
printf("%s\\n", str);//输出生成的随机数。
return 0;
以上代码实现了随机生成一个长度为10,全部字符均为小写英文字符的字符串并输出。
核心语句为str[i] = rand()%(CHAR_MAX-CHAR_MIN + 1) + CHAR_MIN;
其中,
rand()获取一个随机数,
rand()%(CHAR_MAX-CHAR_MIN + 1)使结果位于[0, CHAR_MAX-CHAR_MIN]之内。这里利用了模除的特性。
这样最终的结果就是位于[CHAR_MIN, CHAR_MAX]之间的字符了,从而实现控制生成随机数据范围的效果。
参考技术A 字符串数组是必备的……不然很难实现……如果每个名字都配有编号的话,就需要结构体了……然后使用结构体数组……
name[rand()%100] 就能得到一个名字了……
我觉得这是最简单的方法了……
当然,有数据库的话也可以……
建立一个表inf,有两个值ID和NAME
int i = rand%100;
select name from inf where id = i;本回答被提问者和网友采纳 参考技术B 用一个vector容器,里面存string。
假设你的名字在一个文本里,读文本,一行一个名字。用string保存之后存到你的容器里。
然后用随机数。
rand() % vector.size()得到一个随机的下标,用这个下标去取容器里的数据。
搞定 参考技术C 把人名放到大小为100的数组里,你可以从0到100中随机取一个数字,然后把这个数字作为元素下标,打印数组里这个下标对应的元素,就可以随机打出人名了。 参考技术D
名字存数组,取数组下标,数组下标随机
存字符串,用指定字符隔开。处理的时候分割字符到数组。还是取数组下标
以上是关于C语言随机函数:用0到9这10位数随机输出4位.输出100次后停止...的主要内容,如果未能解决你的问题,请参考以下文章