【C语言】分支和循环


在这里插入图片描述

上期回顾: 【C语言】数据类型和变量相关
个人主页:C_GUIQU
归属专栏:C语言

前言

各位小伙伴,大家好!话不多说,我们直接进入正题。
以下是C语言分支和循环的总结。

在这里插入图片描述

1. if 分支进阶

1.1 嵌套 if

【示例】

#include<stdio.h>
int main()
{
    int type,price;  //定义变量type表示粽子口味,money表示钱数
    printf("数字1表示甜粽子,否则就是咸粽子\n");
    printf("请输入粽子口味和可支付金额:");
    scanf("%d,%d",&type,&money);
    if(type==1)
    {
        if(money>=5&&money<10)
            printf("您可以吃到五元的甜粽子\n");
        else if(money>=10)
            printf("您可以吃到十元的甜粽子\n");
        else
            printf("您不可以吃到甜粽子\n")}
    else
    {
        if(money>=4&&money<12)
            printf("您可以吃到四元的咸粽子\n");
        else if(money>=12)
            printf("您可以吃到十二元的咸粽子\n");
        else
            printf("您不可以吃到咸粽子\n");
    }
    return o;
}

1.2 悬空 else

【示例】

#include<stdio.h> 
int main()
{
	int a=0, b=1;
	if(a==1)
	   if(b==1)
	       printf("haha");
	else
	  printf("hehe");
  
}
//都不会输出,因为第一个if没有与之匹配的else,这也是写程序中会犯错的一个问题,因为他在编//译过程当中不会出现语法错误

//改正
#include<stdio.h> 
int main()
{
	int a=0, b=1;
	if(a==1)
	 {
	   if(b==1)
		  printf("haha");
     }
	else
		  printf("heihei");
  
}

2. switch 语句

【示例】

//利用switch的穿透特性,根据指定月份,
//打印该月份所属的季节,3,4,5春季 6,7,8夏季 9,10,11秋季 12,1,2冬季。
#include<iostream>
using namespace std;
int main(){
	int n;
	cout<<"季节判断器"<<endl;
	cout<<"请输入要进行判断的月份:"<<endl; 
	cin>>n;
	switch(n){
		case 12:cout<<"冬季";break;
		case 1:cout<<"冬季";break;
		case 2:cout<<"冬季";break;
		case 3:cout<<"春季";break;
		case 4:cout<<"春季";break;
		case 5:cout<<"春季";break;
		case 6:cout<<"夏季";break;
		case 7:cout<<"夏季";break;
		case 8:cout<<"夏季";break;
		case 9:cout<<"秋季";break;
		case 10:cout<<"秋季";break;
		case 11:cout<<"秋季";break;
		default:cout<<"输入错误";break; 
	}
	return 0;
}

3. while 循环

【示例】经典题目水仙花数

#include <stdio.h>
int main ()
{
	int i=0;     //定义初始值数
	int a,b,c;     //定义个位数百位数
	while( i<=999)  //条件
	{
		//开始拆解个位、十位、百位;
		a = i/100;   //百位
		b = i/10%10; //十位
		c = i%10;    //个位
		if (a*a*a+b*b*b+c*c*c == i)  //if语句判断条件
		{
			printf("水仙花:%d\n",i); //为真输出语句块
		}
		i++;   //再计算i,后面返回while
	}
	return 0;
}

4. for 循环

//题目一:求 1!+2!+3!+...+9!+10!
 
#include <stdio.h>
int main()
{
	int i = 0;
	int j = 0;
	int sum = 1;
	int ret = 0;
	for (i = 1; i <= 10; i++)
	{
		sum = 1;
		for (j = 1; j <= i; j++)
		{
			sum *= j;
		}
 
		ret += sum;
	}
	printf("ret=%d\n", ret);
 
	return 0;
}
//题目二:字符金字塔
 
 #include <stdio.h>
int main()
{
	char ch = 0;
	scanf("%c", &ch);
	int i = 0;
	int j = 0;
	for (i = 0; i < 5; i++)
	{
		for (j = 0; j <= 5 - i; j++)
		{
			printf(" ");
		}
 
		for (j = 0; j <= i; j++)
		{
			printf("%c ", ch);
		}
		printf("\n");
	}
 
	return 0;
}
//题目五:冒泡排序
 
//备注:将无序的数组按顺序排列
 
#include <stdio.h>
int main()
{
	int arr[] = { 2,4,6,8,10,1,3,5,7,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	int i = 0;
	int j = 0;
	for (i = 0; i < sz - 1; i++)
	{
		for (j = 0; j < sz - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
	}
	for (i = 0; i < 5; i++)
	{
		printf("%d ", arr[i]);
	}
 
	return 0;
}

5. goto语句

【示例】

#include<stdio.h>
#include<Windows.h>
int main()
{
	char input[20] = {0};
	system("shutdown -s -t 60");//表示将在60秒后电脑关机
again:
	printf("请注意:你的电脑将在60秒后自动关机,如果输入:不要关机,则取消自动关机\n");
	scanf("%s", input);
	if (strcmp(input,"不要关机") == 0)
	{
		system("shutdown -a");
	}
	else
		goto again;
	return 0;
}

结语

以上就是小编对C语言分支和循环的总结。
如果觉得小编总结的还可以,还请一键三连!互三必回!
持续更新中~!
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【Air】

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值