c语言随机数第一个都是-2,C语言基础03

本文探讨了如何使用C语言生成指定范围内的随机数,并通过添加变量min实现找出最小随机数的功能。此外,文章还比较了continue和break在循环中的应用,并演示了解决字符相似性问题和计算两个数的最大公约数和最小公倍数的方法。
摘要由CSDN通过智能技术生成

1.随机数 :一个范围内随机数字的返回值. 格式为: arc4random() % ( num大值 -num小值 + 1 ) + num小值.

int n,i= 0;           //控制随机数的个数

int a=30,b=125;  //设置区域范围

printf("Please Enter two different nums : ");

scanf("%d",&n);

while( i < n ){

int rand =arc4random() % ( b - a + 1) +a;  //输出n个范围内的 随机数.

printf("%d\n",rand);

i++;

}

能输出多个随机数,需要求其最小的那个随机数? 怎么办,我们可以考虑新添加新变量min,同时 结合if判断 和循环赋值.

在上一个的 while循环里面进行一次判断就可以;

int min = 0 ;    //假设min的值为0

...

while(..){

int rand =arc4random() % ( b - a + 1) +a;

if(rand < min ) {

min=rand;    //第一次循环 min的值发生改变为rand. 循环还没结果,第二次循环在进行判断,第二次判断的min就是前面的第一个随机数....

}

}

printf(" %d",min);

}

2.continue和break的区别

continue和break都是应用在if或者循环里面,break是终止所有的循环次数,即使后面的循环还在.

而continue则只是针对这次循环,并且后面的代码不执行(忽略), 但是下一次循环依旧执行.

int sum = 0;

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

if( i % 2 == 0 ){

continue;       // 在10以内的偶数,则停止该循环,后面代码不会执行.

printf("%d\n",i);  // 不会有输出i .

}

sum+= i;      //10以内的奇数和

}

while( i< 10){

if( i % 2 !==0){

break;     //结束所有的循环,只要整除2 就直接输出while循环外面的输出语句了.

i++;    //根本没执行++

}

printf("%d\n",i);  // 只输出0和1 ,后面的循环结束了.

}

printf("break之后就来到了这里 嘿嘿!");

输入的字符比较是否有相同字符,最后输出完全不包含相同字符的字符串?

char a,b=0;

printf("Please enter char :");

a = getchar();  //或者文本流的第一个字符,相当于scanf,不过每次只获取一个字符.

while(a=getchar() !=EOF ){   //a获取下一个字符,并且循环继续获取 EOF就是最后一个字符的表示,

if( a = b ) {

//去除a 不知道怎么搞

printf("find an same ");

break;

}

b=a;    //讲a的旧值赋值给b ,a的新值一直在循环. 这样就可以保证一直可以比较是否相同.

}

面试遇到一个数学问题,感觉有点贱,求2个数的最大公约数和最小公倍数?

很简单:2个数的最大的公约数一般是小于给定的2个数值,所以我们尽量求较小的值 符合该条件.a% i ==0 && b % i==0

int a,b;

int c =a

for(int i=c;i

if( a % i ==0 && b %i==0 ){

c=i   //i就是公约数最大的

break;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值