C语言5分支和循环下(基础篇)

目录

switch 语句

循环语句 

for

 水仙花数

99乘法表

 while

break和continue语句 

 找出素数

 goto

目录

switch 语句

循环语句 

for

 水仙花数

99乘法表

 while

break和continue语句 

 找出素数

 goto

一个猜数小游戏


switch 语句

除了 if 语句外,C语言还提供了 switch 语句来实现分支结构。switch 语句是一种特殊形式的 if...else 结构,用于判断条件有多个结果的情况。它把多重的 else if 改成更易用、可读性更好的形式。

int main()
{
	int n = 0;
	scanf("%d", &n);
	switch (n)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("休息日\n");
		break;
	default:
		printf("输入错误\n");
		break;
	}

	return 0;
}

循环语句 

for

表达式1可省略,但循环之前应给循环变量赋值

表达式2可省略,将陷入死循环

表达式3可省略,但在循环体中增加使循环变量值改变的语句 

for(;;){//死循环,在单片机程序中可以看到}

 水仙花数

99乘法表

 while

int main()
{
	int n = 0;
	scanf("%d", &n);

	while (n)
	{
		printf("%d ", n % 10);
		n = n / 10;
	}

	return 0;
}

do  while

break和continue语句 

break 的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。
continue 的作用是跳过本次循环中 continue 后边的代码,在 for 循环和 while 循环中有所差异的。

 找出素数


素数也叫质数,就是只能被1和它本身整除的数字

//1. 产生100~200之间数字 -- for i
//2. 判断生成的i是否为素数
//   如果是素数就打印
//怎么判断i是否是素数呢?
//使用2~i-1之间的数字去试除i,如果都不能整除i,那么i就是素数,否则就不是素数
//   2~i-1之间的数字 for

int main()
{
	int i = 0;
	for (i = 100; i <= 200; i++)
	{
		int flag = 1;//假设i是素数
		//判断i是否为素数
		//产生2~i-1之间的数字
		int j = 0;
		for (j = 2; j <= i - 1; j++)
		{
			if (i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
			printf("%d ", i);
	}

	return 0;
}

代码优化

//sqrt 库函数 - 开平方
//math.h
#include <math.h>

int main()
{
	int i = 0;
	for (i = 100; i <= 200; i++)
	{
		int flag = 1;//假设i是素数
		//判断i是否为素数
		//产生2~i-1之间的数字
		int j = 0;
		for (j = 2; j <= sqrt(i); j++)
		{
			if (i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
			printf("%d ", i);
	}

	return 0;
}

 再次优化,每次自增2

//sqrt 库函数 - 开平方
//math.h
#include <math.h>

int main()
{
	int i = 0;
	for (i = 101; i <= 200; i+=2)
	{
		int flag = 1;//假设i是素数
		//判断i是否为素数
		//产生2~i-1之间的数字
		int j = 0;
		for (j = 2; j <= sqrt(i); j++)
		{
			if (i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
			printf("%d ", i);
	}

	return 0;
}

 goto

 在任何编程语言中,都不建议使用goto语句。•因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。

一个猜数小游戏

知识点:

rand函数能够生成随机数的范围是:0~32767

生成随机数之前需要调用srand来设置随机数的生成起点srand函数只需要调用一次就可以了,不能频繁的调用

#include <stdio.h>
#include <string.h>
#include <math.h>
#include<stdlib.h>
int main() {
    srand((unsigned int)time(NULL));
    int a = (rand()%100)+1;
    int guess,s,y,count;
    printf("***************************\n");
	printf("******   1. play   ********\n");
	printf("******   0. exit   ********\n");
	printf("***************************\n");
    scanf_s("%d",&s);
    if (s == 1) {
        printf("开始游戏\n");

    }
    else if(s==0){
        printf("exit\n");
    }
    else {
        printf("输入错误!!!");
        s = 0;
    }
    count = 3;
    while (s!=0 && count) {
        printf("输入一个数,只有%d次机会\n",count);
        scanf_s("%d", &guess);
        if (a > guess) {
            printf("输入的数小了\n");
        }
        else if (a < guess) {
            printf("输入的数大了\n");
        }
        else {
            printf("恭喜你猜对了,随机数是:%d\n继续吗*****1-play,0-exit****\n", guess);
            scanf_s("%d", &y);
            if (0 == y)
                break;
        }
        count--;
    }
    if (count == 0)
        	{
        		printf("机会使用完,你失败了,正确的数字是:%d\n", a);
        	}
       
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值