您的位置:首页 > 编程语言 > C语言/C++

07-if与循环-案例超经典-C语言

2020-11-01 09:33 1166 查看

本讲将通过几个经典例子来讲解选择与循环嵌套。

选择与选择嵌套

if 与 if嵌套

判断变量a是否在3~10之间。

int a = 4;

if (a > 3) {
   if (a < 10) {
printf("满足条件");
}
}

可以看到,上面程序也可以使用逻辑运算符来简化为:

int a = 4;
if (a > 3 && a < 10) {
printf("满足条件");
}

第二种写法明显更清晰,也更方便处理。所以在开发过程中,要学会合理运用逻辑运算来合并一些没必要的嵌套。

if 与 switch嵌套

用户输入是否是工作日(y/n)与星期几。如果是工作日,则星期一输出“中午吃牛肉面”,星期二输出“中午吃卤肉面”。

char isWorkingDay = 0;
int dayOfWeek;

printf("请输入是否是工作日(y/n), 与星期几:");
scanf("%c %d", &isWorkingDay, &dayOfWeek);

if (isWorkingDay == 'y') {
switch (dayOfWeek) {
case 1:
printf("中午吃牛肉面");
break;
case 2:
printf("中午吃卤肉面");
           break;
default:
break;
}
}

选择与循环嵌套

对于选择与循环的嵌套结构,主要讲解for循环与if的嵌套。

if 与 for嵌套

输出2000~2100之间的闰年。

// 从2000循环到2100,挨着判断是否是闰年
for (int i = 2000; i <= 2100; i ++) {
// 判断闰年:能被400整除或能被4且不能被100整除的年份
   if ((i % 400 == 0) || (i % 4 == 0 && i % 100 != 0)) {
printf("%d ", i);
}
}

循环与循环嵌套

循环嵌套主要讲解for循环的嵌套。

输出以下形状

****
****
****
// 控制行数
for (int i = 0; i < 3; i ++) {
// 控制列数
   for (int j = 0; j < 4; j ++) {
printf("*");
}
// 每一行结束后换行
printf("\n");
}

输出以下形状

*
**
***
****

首先分析*与行号的关系:

行号*个数
01
12
23
34
// 控制有多少行
for (int i = 0; i < 4; i ++) {
// 控制每一行都多少*
   for (int j = 0; j <= i; j ++) {
printf("*");
}
printf("\n");
}

输出九九乘法表

for (int i = 1; i <= 9; i ++) {
   for (int j = 1; j <= i; j ++) {
printf("%d * %d = %d\t", j, i, i * j);
}
printf("\n");
}

输出以下形状

   *
**
***
****

首先分析*与行号的关系:

行号*个数空格数
013
122
231
340

空格数 = 总行数 - 1 - 行号

*数 = 行号 + 1

// 控制行数
for (int i = 0; i < 4; i ++) {

// 控制每行的空格数
   for (int j = 0; j < 4 - 1 - i; j ++) {
printf(" ");
}

// 控制每行的*数
   for (int j = 0; j <= i; j ++) {
printf("*");
}
printf("\n");
}

输出以下形状

1
2   3
4   5   6
7   8   9   0

分析:这道题同样需要找到行号、空格、数字之间的关系。同时可以看到,数字是从1开始,到0结束的,可以通过取余运算来达到这个效果。

// 定义变量number,用于输出连续数字
int number = 1;

// 外层循环控制行数
for (int i = 0; i < 4; i ++) {

// 控制每一行的空格数
   for (int j = 0; j < 4 - 1 - i; j ++) {
printf(" ");
}
1d864

// 控制每一行输出的数字
   for (int j = 0; j < i + 1; j ++) {
// 因为最后一个数是0,而不是10,所以对10取余
printf("%d ", number % 10);
// 每输出一个数,就++
number ++;
}
printf("\n");
}

《c语言简明教程》

01-C语言的过去与未来

02-Dev C++  安装及使用方法教程

03-C语言的第一个简单实例

04-关键字与标识符-C语言

05-数据类型与常量变量-C语言

06-C语言运算符

IT入门 感谢关注

程序员题库→

程序员用的单词表→

练习地址:www.520mg.com/it

????戳“阅读原文”,get涨薪技能!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: