c语言编程有个地方不会 怎么用srand和time函数生产随机数

你先要知道,计算机并不能产生真正的随机数。他只是使用你提供的一个初始值,每次对这个值进行一个比较复杂的运算(各种位运算+奇奇怪怪的计算,详情请查阅伪随机算法),意思是计算机的随机数,其实也是可以根据他的随机函数算出来的。。
srand()函数是添加随机数种子,其实就是设置这个初始值,如果不要这个函数的话,rand()函数生成的序列是固定的。为了保证每次随机值都尽量不同,一般取系统当前时间戳作为随机函数种子,这样效果较好,于是就有了你看到的代码srand(time(NULL))
rand()函数是取随机值。有了随机种子之后,每次调用rand函数会生成一个范围在0到MAX_RAND的随机值。MAX_RAND这是个宏,在不同的IDE里面有不同的定义,在我的VS2012里面,他等于0x7fff。
意思是rand()函数每次生成的随机数范围在0到0x7fff之间。
看你的代码应该是要叫人猜计算机生成的随机数,如果这个范围过大,就没什么意思了,我就假设你需要的随机数是0到9之间的吧。那么你生成随机数的代码就应该是:
rand()%10;
我不是很清楚你的代码到底要表达什么,我自己随便写了一份参考代码:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int
ReadInt()
{
int
MyRand;
printf("please
guess
a
number,
range(0~9):");
scanf("%d",&MyRand);
return
MyRand;
}
int
main()
{
int
MyRand;
srand(time(NULL));
while(true)
{
int
x=rand()%10;
MyRand=ReadInt();
if(MyRand==x)
{
printf("you
win!\n");
break;
}
else
{
printf("you
guess
wrong!
you
guess:%d
but
the
answer
is:%d
now\nplease
try
again\n",MyRand,x);
}
}
return
0;
}

  • c璇█缂栫▼鏈変釜鍦版柟涓嶄細 鎬庝箞鐢╯rand鍜宼ime鍑芥暟鐢熶骇闅忔満鏁
    绛旓細浣犲厛瑕佺煡閬擄紝璁$畻鏈哄苟涓嶈兘浜х敓鐪熸鐨勯殢鏈烘暟銆備粬鍙槸浣跨敤浣犳彁渚涚殑涓涓垵濮嬪硷紝姣忔瀵硅繖涓艰繘琛屼竴涓瘮杈冨鏉傜殑杩愮畻锛堝悇绉嶄綅杩愮畻+濂囧鎬殑璁$畻锛岃鎯呰鏌ラ槄浼殢鏈虹畻娉曪級锛屾剰鎬濇槸璁$畻鏈虹殑闅忔満鏁帮紝鍏跺疄涔熸槸鍙互鏍规嵁浠栫殑闅忔満鍑芥暟绠楀嚭鏉ョ殑銆傘俿rand()鍑芥暟鏄坊鍔犻殢鏈烘暟绉嶅瓙锛屽叾瀹炲氨鏄缃繖涓垵濮嬪硷紝濡傛灉涓嶈...
  • 杩欓亾棰C璇█缂栫▼棰樻垜鏈変竴涓祴璇曠偣鎬绘槸閫氫笉杩,璇烽棶鎴戦敊鍦ㄥ摢?
    绛旓細绋嬪簭娌¢棶棰樺晩锛岃兘姝e父杈撳嚭锛氫綘璇寸殑閫氫笉杩囷紝鏄紪璇戝櫒鎶ョ殑閿欏悧锛熼檮浜嗕竴涓唬鐮侊紝鏄竴娆℃ц緭鍏ヤ箣鍚庯紝鐒跺悗涓娆℃т緷娆℃瘡琛岃緭鍑猴細include<stdio.h> include<stdlib.h> int main(){ int N;int height, weight;int i;double standard;scanf("%d", &N);int *data = (int*)malloc(2 * N * sizeof...
  • c璇█涓轰粈涔堣繖涔堥毦瀛,鎴戜负浠涔堣佹槸瀛涓嶄細
    绛旓細C璇█娌℃湁鍒殑璇█濂藉氨涓 杩欐秹鍙婁竴涓緢鐜板疄鐨勯棶棰橈紝瀛︿範浜缂栫▼璇█灏卞緱鎵惧伐浣滐紝濡傛灉瀛︿簡涓嶅ソ鎵惧伐浣滐紝鑲畾瀛︿範璧锋潵鐨勫姩鍔涘氨涓嶈冻锛屾瘯绔烠璇█鐨勫伐浣滃矖浣嶇粷瀵规暟閲忓苟涓嶅皯锛屼絾鏄浉姣攋ava锛宲hp锛宲ython绛夎瑷杩樻槸娌℃硶姣旓紝鑰屼笖瀵瑰叆闂ㄨ呯殑瑕佹眰鐩稿鏇撮珮鐐癸紝钖祫涓婁篃涓嶄竴瀹氭湁澶氬ぇ鐨勪紭鍔匡紝鎵浠ュ浜庡垵瀛﹁呮病鏈夊澶х殑...
  • C璇█涓婄骇涓嶄細缂栫▼,鎬庝箞鍔?
    绛旓細鑷繁骞冲父澶氱粌缁冿紝澶氱湅鐪嬩功灏ゅ叾鏄暀绉戜功銆傚紑濮嬭浠庡熀纭鍋氳捣锛屾參鎱㈢殑璇曠潃鑷繁鍐欎竴浜涘皬绋嬪簭銆傛湁浜嗕竴浜涘熀纭鍚庯紝鐪嬬湅銆C绋嬪簭璁捐璇█锛堢2鐗埪锋柊鐗堬級銆嬭洰濂界殑銆 涔熷彲浠ュ姞鍏ヤ竴浜涘C璇█鐨凲Q缇わ紝鍘昏璁恒
  • c璇█瀛涓嶄細?鍥涗釜鍘熷洜!
    绛旓細C璇█涓轰粈涔堝涓嶄細4涓師鍥 1.瀛︾敓鍔熷か娌′笅鍒 鐧惧垎涔嬪叓鍗佺殑瀛︾敓鍥犳鑰屾病鏈夊浼欳璇█!鐜板湪鐨勫鐢熺敱浜庢墿鎷涖佸搴暀鑲茬瓑鍘熷洜锛屽叾瀛︿範绱犺川鏄庢樉鍋忎綆銆備織璇濊锛屸滃彧瑕佸姛澶繁锛岄搧妫掔(鎴愰拡鈥濓紝鍐嶇鐨勪汉锛屽彧瑕佷竴涓姴鍎垮湴鍘婚捇鐮旓紝鏈缁堥兘鑳界悊瑙g紪绋嬫妧鏈殑銆傚緢澶氫汉鏈鍒濇病鏈夎兘鐞嗚В涓浜涚紪绋嬫蹇靛拰鏈锛屼究杞屽幓鎵...
  • C璇█涓湁浜涘彉閲忓彲浠ヤ笉璧嬪垵鍊艰屾湁浜涗笉琛屼负浠涔??
    绛旓細C璇█涓彉閲忎笉璧嬪垵鍊兼槸涓嶈兘鈥濅娇鐢ㄢ滅殑銆傝繖涓濅娇鐢ㄢ滄槸鎸囪鍙栧彉閲忕殑鍐呭銆傚洜涓猴紝鏈祴鍒濈殑鍙橀噺涓瓨鍌ㄧ殑鏁版嵁鏄釜闅忔満鍊硷紝鍏跺间笉纭畾銆傞殢鏈哄肩殑浜х敓鍘熷洜锛氬彉閲忛兘鏄瓨鍌ㄥ湪鍐呭瓨涓殑銆绋嬪簭杩愯浠ュ悗锛屼細鍦ㄥ唴瀛樹腑缁欏悇涓彉閲忓畨缃綇澶勶紝杩欎簺鍦版柟浠ュ墠鍙兘鏈夊埆鐨勭▼搴忕敤杩囷紝閲岄潰鐣欐湁涓婃浣跨敤鍚庣殑缁撴灉鏁版嵁锛屼絾绯荤粺涓...
  • 鏈汉鏂板C璇█,浣嗘槸鎸囬拡杩欏潡鐪嬬殑姣旇緝杩风硦,涓浜涗緥瀛愰兘鐪嬬殑涓嶆槸寰堟噦,璇...
    绛旓細鍙戠敓杩欑鐜拌薄鐨勫師鍥犳湁涓変釜: 涓銆佹墍璋撶殑鐪嬫噦鍚槑鐧,鍙槸寰堣偆娴呯殑璇硶鐭ヨ瘑,鑰屾垜浠紪鍐欑殑绋嬪簭鎴栬蒋浠舵槸瑕佹牴鎹瑙e喅闂鐨勫疄闄呴渶瑕佹帶鍒剁▼搴忕殑娴佺▼,濡傛灉浣犳病鏈夋繁鍒诲湴鐞嗚ВC璇█鐨勮鍙ョ殑鎵ц杩囩▼(鎴栨祦绋),浣犳庝箞浼氱紪鍐欑▼搴忚В鍐宠繖浜涘疄闄呴棶棰樺憿? 浜屻佺敤C璇█缂栫▼瑙e喅瀹為檯闂,鎵闇瑕佺殑涓嶄粎浠呮槸C璇█鐨勭紪绋嬬煡璇,杩橀渶瑕佺浉鍏崇殑...
  • c璇█鍜嬩箞瀛﹀晩??鑳界湅鎳備緥棰,鑷繁缂栫▼涓嶄細鍟?娌℃湁鎬濊矾!
    绛旓細绗簩锛C璇█鑳藉璁╀綘娣卞叆绯荤粺搴曞眰锛屼綘鐭ラ亾鐨勬搷浣滅郴缁燂紝鍝竴涓笉鏄疌璇█鍐欑殑锛熸墍鏈夌殑windows,Unix,Linux,Mac,os/2锛屾病鏈変竴涓噷澶栫殑锛屽鏋滀綘涓嶆噦C璇█锛屾庝箞鍙兘娣卞叆鍒拌繖浜涙搷浣滅郴缁熷綋涓幓鍛紵鏇翠笉瑕佽浣犲幓鍐欏畠浠殑鍐呮牳绋嬪簭浜嗐傜涓夛細寰堝鏂板瀷鐨勮瑷閮芥槸琛嶇敓鑷狢璇█锛孋++,Java,C#,J#,perl...鍝釜涓...
  • C璇█瀛涓嶄細鎬庝箞鍔?
    绛旓細🌈姣斿C璇█閲岄潰璁茬殑鏄粨鏋勫寲绋嬪簭璁捐鐨勬渶鍏稿瀷鐨勫唴瀹广備笉绠℃槸鍝竴绉嶆暀鏉愶紝浠庝竴寮濮嬪氨娉ㄩ噸鐢ㄨ繖绉嶆柟娉曘傚湪寮濮嬪涔犵殑鏃跺欙紝浣犲彲鑳戒細閮借繕娌′簡瑙h繖绉缂栫▼鎬濇兂锛屼絾鍦ㄥ涔犲嚱鏁扮殑鏃跺欙紝鍥炶繃澶村啀娆′綋浼氾紝浣犱細鏈変竴绉嶅緢鎯婅鐨勬劅瑙夈傚洜姝ゅ涔燙璇█鏄竴涓弽澶嶇殑杩囩▼锛屽彧鏈夋垜浠缁堝涓鍦板涔狅紝鎵嶈兘鍟冧笅杩欏潡...
  • C璇█缂栫▼棰樺畬鍏涓嶄細
    绛旓細绗竴棰 main(){ char ch[10];int i=0,n;gets(ch);while(ch[i]){ if(ch[i]>='a'&&ch[i]<='z')printf("%c",ch[i]-(7+2*(ch[i]-'a')));else if(ch[i]>='A'&&ch[i]<='Z')printf("%c",ch[i]*3/2+1);else if(ch[i]>='0'&&ch[i]<='9'){ n=(int...
  • 扩展阅读:信息学奥赛一年费用 ... 编程猫少儿编程可靠吗 ... 免费自学电脑培训班 ... 自学编程免费网上学习 ... c++编程软件 ... 编程必背100个代码 ... c++编程适合几岁学 ... 十大编程语言排名 ... c++和python先学哪个 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网