
260928如何用c语言实现随机取数涉及头文件stdlib.h调用函数rand()rand()会直接给你一个随机整数belike:intnrand();注意rand()给的数非常大如果要减小的话就求余处理%但是啊会发现rand()每次生成的的数一摸一样因为它是伪随机他需要一个种子seed来生成这个数但是rand()的参数列表就是括号里填的内容无法直接填参数所以我们用到srand(填seed)也在stdlib.h里面如果种子一样的话每次rand()生成的数还是一样的所以我们需要每时每刻都不一样的时间(time)来实现seed的不同time(NULL) 会返回当前时间从 1970 年到现在过了多少秒这个数每秒都在变调用time()涉及头文件time.rand无法用seed改计算起点。只能用srandsrand()需要的参数类型是unsigned int完整代码belike#includestdio.h#includestdlib.h#includetime.hintmain(){srand((unsigned)time(NULL));// 用当前时间当种子intnrand()%1001;printf(%d\n,n);return0;}关于time()函数其返回类型是整数所以需要类型强制转换才能给srand 打印它需要用%ld它参数能填指针但是我们只需要它直接给我当前时间所以填空指针NULL260929打印*菱形我感觉我写的相比ds写的也不遑多让好吧哈哈哈#includestdio.hintmain(){intn0;printf(Enter n:\n);scanf(%d,n);for(intan;a0;a--){for(inti0;ia-1;i){printf( );}for(intj0;j(n1-a)*2-1;j){printf(*);}printf(\n);}for(intbn-1;b0;b--){for(intk0;kn-b;k){printf( );}for(intl0;l2*b-1;l){printf(*);}printf(\n);}return0;}C 语言的 for 循环中变量更新如 i是在本次循环体执行完之后、下一次循环条件判断之前完成的261002关于水仙花数输出所有 3 位数中的水仙花数各位数字立方和等于该数本身如 153 1³5³3³。进一步挑战扩展到 n 位数n 由用户输入用循环实现通用的水仙花数判断。拓展belike#include stdio.h//这题一个很深的坑是我没理解水仙花数是n位就是n次方的和longlongncifang(intx,longlongn){longlonga1;for(x;x0;x--){a*n;}returna;}intmain(){intn0;printf(Enter n digits:\n);scanf(%d,n);inttotal0;inttn;longlonghe0;for(longlongincifang(n-1,10);incifang(n,10);i)//三位数初始有100也就是10的2次方就够了。。。{he0;//把之前累计的和清零不然会干扰下一次计算验证longlongmi;tn;while(t0){hencifang(n,m/ncifang(t-1,10));m%ncifang(t-1,10);t--;}if(hei){printf(%lld ,i);total;}if(total%50total!0){printf(\n);}}return0;}这题一个很深的坑是我没理解水仙花数是n位就是n次方的和还有就是涉及了哪些变量是在哪个区域内不能变、哪个区域内能变的问题比如n的问题得额外设置一个t来实现n的变化但是要让n本身不变化以及涉及了变量在循环内使用结束后是否清零的问题比如he这个变量如果不及时清零就会导致后面计算都是在上一个循环得到的he的基础上继续加就不符合题意了这些bug总感觉以后还会遇到。。。261003参加了Nefixst举办的嗷嗷嗷杯点赞点赞四个小时六题做了四题虽然写的时候我没检查出问题但是考完还是发现漏了很多条件素数和那道题感觉是我做的最好的第一道比较成绩的又涉及盲点了晚上看一下玩回来有没有时间补盲点第五题虽然结果对了但是我给的数据类型是int装不下那么大的数可能改成long long就可以了但是我的算法有点过于朴素耗时了只拿了20分。。。其实第一题写的也是屎山代码#includestdio.hintmain(){intk10;intk20;intk30;intk40;intk50;intk60;intk1r0;intk2r0;intk3r0;intk4r0;intk5r0;intk6r0;ints10;ints20;ints30;ints40;ints50;ints60;chars[100]huanxin;inttotal_k0;inttotal_s0;intmaxr0;intmaxs0;intr0;scanf(%s,s);scanf( %d %d %d,k1,s1,k1r);scanf( %d %d %d,k2,s2,k2r);scanf( %d %d %d,k3,s3,k3r);scanf( %d %d %d,k4,s4,k4r);scanf( %d %d %d,k5,s5,k5r);scanf( %d %d %d,k6,s6,k6r);total_kk1k2k3k4k5k6;total_ss1s2s3s4s5s6;if(total_ktotal_s){printf(BJBL\n);}else{printf(Kiang Ah! %s!\n,s);if(k1rk2r){rk1r;maxrk1;maxss1;}else{rk2r;maxrk2;maxss2;}if(k3rr){rk3r;maxrk3;maxss3;}if(k4rr){rk4r;maxrk4;maxss4;}if(k5rr){rk5r;maxrk5;maxss5;}if(k6rr){rk6r;maxrk6;maxss6;}if(maxrmaxs){printf(BJBL\n);}else{printf(Kiang Ah! %s!\n,s);}}return0;}真就纯屎山好吗