
上期回顾: 【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语言分支和循环的总结。
如果觉得小编总结的还可以,还请一键三连!互三必回!
持续更新中~!

1068






