博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分支语句和循环语句(1)
阅读量:4967 次
发布时间:2019-06-12

本文共 6871 字,大约阅读时间需要 22 分钟。

Part 1

一、判断这3条线段组成的三角形属于什么类型

①if循环

/*《C语言程序设计教程学习指导》p122 实验内容(1):判断三角形类型:一般三角形、等腰三角形、等边三角形 这是一个使用多分支if语句编程解决非数值类问题示例 运行程序,输入不同边长数据进行测试,观察输出结果是否正确,理解和巩固if语句功能和用法*/#include 
int main() { double a, b, c; scanf_s("%lf %lf %lf", &a, &b, &c); if (a + b > c && a + c > b && b + c > a) { if (a == b && a == c) printf("构成等边三角形\n"); else if (a == b || a == c || b == c) printf("构成等腰三角形\n"); else printf("构成一般三角形\n"); } else printf("不能构成三角形\n"); return 0;}

②if内部代码替换

/*demo1_1.cpp: 《C语言程序设计教程学习指导》p122 实验内容(1) 这是一个使用多分支if语句编程解决非数值类问题示例 运行程序,输入不同边长数据进行测试,观察输出结果是否正确,理解和巩固if语句功能和用法*/#include 
int main() { double a, b, c; scanf_s("%lf %lf %lf", &a, &b, &c); if (a + b > c && a + c > b && b + c > a) { if (a == b || a == c || b == c) { if (a == b && a == c) printf("构成等边三角形\n"); else printf("构成等腰三角形\n"); } else printf("构成一般三角形\n"); } else printf("不能构成三角形\n"); return 0;}

      

③while循环

/*这是在demo1.cpp的基础上行,增加了一小部分代码,可以循环判断多组数据要终止输入和判断:按组合键Ctrl+D(同时按下Ctrl和D键),然后按回车键结束*/#include 
int main() { double a, b, c; printf("输入三角形三边:\n"); while (scanf_s("%lf%lf%lf", &a, &b, &c)) { if (a + b > c && a + c > b && b + c > a) { if (a == b && a == c) printf("构成等边三角形\n"); else if (a == b || a == c || b == c) printf("构成等腰三角形\n"); else printf("构成一般三角形\n"); } else printf("不能构成三角形\n"); printf("\n输入三角形三边:\n"); } return 0;}

 二、判断成绩等级

①if语句

/*《C语言程序设计教程学习指导》p122 实验内容(2):输入百分制分数,测算并输出等级制分数 这是一个综合使用while语句、多分支if语句和continue、break实现分数段判断的示例 运行程序,输入不同分数值进行测试,理解和巩固这些控制语句的用法 按下组合键Ctrl+D(同时按下Ctrl和D)结束判断 */#include 
int main() { int score; // 用于存放百分制分数 char grade; // 用于存放等级制分数(取值'A', 'B','C','D', 'E') while (1) { printf("输入学生成绩: "); if (scanf_s("%d", &score) == 0) // 如果检测到没有成绩输入,则结束整个循环 break; if (score < 0 || score > 100) { printf("输入成绩有误!\n\n"); continue; // 结束本次循环,开始下一次循环 } else if (score >= 90 && score <= 100) grade = 'A'; else if (score >= 80 && score <= 89) grade = 'B'; else if (score >= 70 && score <= 79) grade = 'C'; else if (score >= 60 && score <= 69) grade = 'D'; else grade = 'E'; printf("等级为: %c\n\n", grade); } return 0;}

②switch语句

/*相较于demo3.cpp,这个代码实现中,分数从百分制转换为等级制的部分,使用switch语句实现  按下组合键Ctrl+D(同时按下Ctrl和D),然后按回车键,结束判断 */   #include 
int main() { int score; // 用于存放百分制分数 char grade; // 用于存放等级制分数(取值'A', 'B','C','D', 'E') while(1) { printf("输入学生成绩: "); if(scanf("%d",&score) == 0) // 如果检测到没有成绩输入,则结束整个循环 break; if(score<0 || score > 100) { printf("输入成绩有误!\n\n"); continue; // 结束本次循环,开始下一次循环 } switch(score/10) { // 使用switch进行分数等级判断 case 10: case 9: grade='A'; break; case 8: grade='B'; break; case 7: grade='C'; break; case 6: grade='D'; break; default: grade='E'; } printf("等级为: %c\n\n", grade); } return 0; }

 

三、对比和理解控制语句continue和break的功能

①continue语句

// 对比demo5_1.cpp和demo5_2.cpp,理解控制语句continue和break的功能 #include 
int main() { int i; // 在循环语句中使用continue for(i=1; i<=5; i++) { if (i%3 == 0) // 如果i是3的倍数,则结束本次循环,开始下一次循环 continue; printf("i=%d\n",i); } return 0;}

②break语句

// 对比demo5_1.cpp和demo5_2.cpp,理解控制语句continue和break的功能 #include 
int main() { int i; // 在循环语句中使用break for(i=1; i<=5; i++) { if (i%3 == 0) // 如果i是3的倍数,则结束整个循环 break; printf("i=%d\n",i); } return 0;}

简单分析:

  1. continue语句使程序跳出当前循环的剩余部分,并开始下一轮迭代
  2. break语句使程序跳转至紧跟在包含break语句的循环或switch末尾的下一条语句

四、对比和理解在嵌套的循环中控制语句continue和break的功能

①continue语句

// 对比demo6_1.cpp和demo6_2.cpp,理解在嵌套的循环中,控制语句continue和break的功能#include 
const int LINE=3; // 定义符号常量LINE const int COLUME=5; // 定义符号常量COLUMEint main() { int line; // 定义变量line, 用来控制行数 int col; // 定义变量col, 用来控制列数 // 输出LINE行信息 for(line=1; line<=LINE; line++) { // 每一行中,利用循环,输出各列信息 for(col=1; col<=COLUME; col++) { if(col%3 == 0) // 如果col是3的倍数,则结束本次循环,开始下一次循环 continue; printf("%5d", col); } printf("\n"); // 每输出完一行,换行 } return 0;}

简单分析:如果continue语句在嵌套循环内,则只会影响包含该语句的内层循环,即不会影响外层循环。

②break语句

// 对比demo6_1.cpp和demo6_2.cpp,理解在嵌套的循环中,控制语句continue和break的功能#include 
const int LINE=3; // 定义符号常量LINE const int COLUME=5; // 定义符号常量COLUMEint main() { int line; // 定义变量line, 用来控制行数 int col; // 定义变量col, 用来控制列数 // 输出LINE行信息 for(line=1; line<=LINE; line++) { // 每一行中,利用循环,输出各列信息 for(col=1; col<=COLUME; col++) { if(col%3 == 0) // 如果col是3的倍数,则结束内层循环体 break; printf("%5d", col); } printf("\n"); // 每输出完一行,换行 } return 0;}

简单分析:如果break语句位于嵌套循环内,它只会影响包含它的当前循环。即要跳出外层循环还需要一个break。

Part 2

五、补足程序

/* 编程找出5个整数的最大数和最小数《C语言程序设计教程学习指导》p122实验内容(3) */#include 
int main() { int number, max, min, n; n = 1; printf("输入第%d个数: ", n); scanf_s("%d", &number); max = number; min = number; while (n <= 4) { n++; printf("输入第%d个数: ", n); scanf_s("%d", &number); if (number > max) max = number; else if (number < min) min = number; } printf("最大数为: %d\n", max); printf("最小数为: %d\n", min); return 0;}

Part 3

六、编程

①输出素数及个数

#include 
#include
int main() { int n, m, i, k; k = 0; for (n = 101;n <= 200;n++) { m = sqrt(n); for (i = 2;i <= m;i++) { if (n%i == 0) break; } if (i > m) { printf("%4d", n); k = k + 1; } } printf("\n"); printf("101~200之间共有%d个素数.", k); return 0;}

②打印图案

#include 
int main() { int line, n, m; for (line = 1;line <= 5;line++) { for (n = 1;n <= 5 - line;n++) printf(" "); for (m = 1;m <= 2 * line - 1;m++) { printf("*"); } printf("\n"); } return 0;}

编写此文时感觉身体不大舒服,就先这样吧(o_ _)ノ

最后,感谢阅读~

 

PS:

https://www.cnblogs.com/weiyuyang/p/10697684.html

https://www.cnblogs.com/parzival/p/10714118.html

https://www.cnblogs.com/tedyoung1/p/10702286.html

 

转载于:https://www.cnblogs.com/gundongtiao/p/10711636.html

你可能感兴趣的文章
代码审计入门后审计技巧
查看>>
Linux-Rsync服务器/客户端搭建实战
查看>>
接口和抽象类有什么区别
查看>>
简单通过百度api自动获取定位-前端实现
查看>>
180117 我的宠物识别判断语句
查看>>
JavaScript修炼之道pdf
查看>>
自己动手构造编译系统++编译、汇编与链接pdf
查看>>
JAVA 中文件读写函数BufferedReader 和 BufferedWriter 的使用
查看>>
Codeforces Round #206 (Div. 2)
查看>>
提升混合应用页面打开速度的新思路
查看>>
Mycat分表分库
查看>>
2019.7.11
查看>>
Php取扩展名
查看>>
模板的文件名和方法名一定要一致!!
查看>>
**p
查看>>
优先队列详解
查看>>
VS2012 创建项目失败,,提示为找到约束。。。。
查看>>
外观模式(Facade Pattern)
查看>>
PHP-----数组和常见排序算法
查看>>
FTS(3) BSD 库函数手册 遍历文件夹(一)
查看>>