2015多益网络实习生招聘一题解析3

本文介绍了一个C语言函数,用于在指定范围内生成5个随机整数,使得这些整数之和为0。通过循环和条件判断确保了随机数的正确生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 假设有函数random(),传入参数nn>0)会返回0n-1中任意一个数,编写randomlist()实现,在正负整数区间[-20,20]内随机输出5int型整数,让他们的和为0

(先写编程思路,在写代码,不写编程思路扣分)

解析:

c语言中,rand()会返回一随机数值,范围在0RAND_MAX 间。返回0RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h

如何产生一个XY的随机数,通常的做法是这样写:

k=rand()%(Y-X+1)+X;

这样,就可以产生你想要的任何范围内的随机数了。

void randomlist()

{

int n;

int sum=0,flag=1; 

int random[5];///把产生的五个随机数存起来

while(flag==1)//如超出随机数总和的范围,则重新生成随机数 

sum=0;//将总和归零 

printf("符合条件的5个随机数为:");//打印一个回车 

for(int i=0;i<5;i++){ 

printf("\n"); 

n=(random(40)%40)-20;//随机数在[-20,20]之间 

sum=sum+n;//将生成的随机数累加,存在sum变量中

random[i]=n; 

 

if(sum==0)//判断是否等于确定的随机数总和 

flag=0;//如果不等,变量flag为0

for(int i=0;i<5;i++){ 

printf("%d\n",random[i]); 

}

注:这是一个很基本的方法,时间效率不高,谁有更好的方法可以贴出来大家商讨一下!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值