C语言学习(4)分支

for循环      

语法形式:for(表达式1;表达式2;表达式3)(如果想循环更多语句就加上大括号)

表达式1:循环变量的初始化

表达式2:循环结束条件判断

表达式3:循环变量的调整

接下来做一个实例:

在屏幕上打印1-10

#include <stdio.h>

int main()
{
int i  = 0;
for(i=1;i<=10;i++)
{
printf("%d",i);
}
return 0;
}

先定义一个变量i,初始值为1,再循环里面每次循环都加一,直到大于10为止

第二个案例:

计算1~100之间3的倍数之和

#include <stdio.h>

int main()
{
int i = 0;
int sum = 0;
for (i = 1 ; i <= 100;i++)
{
if(i % 3 == 0 ) //判断是否为3的倍数
sum += i;
}
printf("%d",sum);
return 0;
}

do while 循环

语法格式:

do 

语句

while(表达式)

do while 循环先进入循环体,执行循环语句,然后在执行while后的判断表达式,表达式为真,就会进行下一次,表达式为假,就停止(循环体的循环体至少执行一次)

接下来做一个实例:

打印1~10的值

#include <stdio.h>

int main()
{
    int i = 1;
    do
    {
    printf("%d",i);
    i = i + 1;
    }while(i <= 10);
return 0;
}

案例2:

输入一个正整数,计算正整数是几位数?

#include <stdio.h>

int main()
{
   int n = 0;
   scanf("%d",&n);
   int cnt = 0;
   do
    {
     cnt++;
     n = n / 10; 
    }while(n);
    printf("%d",cnt);
     
   return 0;
}

break

用于终止程序

continue

停止当前循环,进行下一次循环

goto

可以实现同一个函数内跳转到设置好的行标处。

举例:

#include <stdio.h>

int main()
{
  printf("1");
  goto next:


next:
    printf("2");
    return 0;
}

随机数生成:

rand(生成随机数)

代码格式:

int rand (void);

使用stdlib.h头文件

#include <stdio.h>
#include <std;ib.h>
int main()
{
printf("%d",rand());
return 0;
}

执行多次发现,每次随机数都是相同的,只是因为随机数有一个种子数,根据种子的基准值进行运算生成的随机数。

srand  初始化随机数生成器

语法格式如下:

void srand (unsigned int seed);

程序中在调⽤rand函数之前先调⽤srand函数,通过srand函数的参数seed来设置rand函数⽣成随 机数的时候的种⼦,只要种⼦在变化,每次⽣成的随机数序列也就变化起来了。 那也就是说srand的种⼦是如果是随机的,rand就能⽣成随机数;在⽣成随机数的时候⼜需要⼀个随 机数,这就⽭盾了。

time

程序中种子根据时间进行变化,time就是这个时间。

格式:

time_t time(time_t* timer);

如果timer是NULL,就只返回这个时间的差值。time函数返回的这个时间差也被叫做:时间戳。time函数的时候需要包含头⽂件:time.h

#ifndef _CRT_NO_TIME_T

 #ifdef _USE_32BIT_TIME_T

 typedef __time32_t time_t;
 #else

 typedef __time64_t time_t;
 #endif

#endif
typedef long __time32_t;

typedef __int64 __time64_t;

如果只返回时间戳

time(NULL);

随机生成数字就可以改成:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main()
{
 //使⽤time函数的返回值设置种⼦ 
 //因为srand的参数是unsigned int类型,我们将time函数的返回值强制类型转换 
 srand((unsigned int)time(NULL));
 printf("%d\n", rand());
 printf("%d\n", rand());
 printf("%d\n", rand());
 printf("%d\n", rand());
 printf("%d\n", rand());
 return 0;
}

接下来介绍随机数的范围设置

0~99:rand() %100;

1~100:rand()%100+1;

100~200:100 + rand()%(200-100+1)

a~b:a + rand()%(b-a+1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值