C语言——设置flag的优点
flag在C语言中没有特定的含义,但是我们一般将它作为标记使用。比如设立判断条件,或者作为跳出循环的依据。
例如,判断素数中,设置flag标记,让我们的程序可读性更佳。
#include<stdio.h>#include<math.h> int prime(int n)
{int flag=1; //设置标记for(int i=2; i<=sqrt(n); i++){if(n%i==0){flag = 0;break;}}return flag;
}
int main()
{for(int i=2;i<=200;i++){if(prime(i)==1)printf("%d\n",i);}
}
在三色旗算法中同样用到flag标记,里面需使用三种标记使得三种不同的旗子能够按要求移动排序。
//三色旗
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define BLUE 'b'
#define RED 'r'
#define WHITE 'w'
//宏定义函数,无参数类型,且容易产生错误,节省时间但是占用空间 ,'\'是宏定义的换行符
//交换两面旗的函数方法
#define \
swap(x, y){ \char temp; \temp=color[x]; \color[x]=color[y]; \color[y]=temp;}int main() {char color[] = {'r','w','r','r','b','b','w','w','r','b','\0'};//标记的含义是,当蓝色和白色标记若在非自己颜色的旗子上则不移动,//若在,则向前移动,直到红色与白色标记停留在同一位置结束int bFlag = 0; //b放在第一位 int wFlag = 0; //w也放在第一位 int rFlag = strlen(color)-1; //r放在最后一位 int i;//打印初始旗子次序 for(i=0; i<strlen(color);i++)printf("%c",color[i]);printf("\n");//当一个在前一个在后 while(wFlag <= rFlag){if(color[wFlag] == WHITE)wFlag++; //白色往后移 else if(color[wFlag] == BLUE){swap(bFlag,wFlag);bFlag++; //蓝色往后移wFlag++; } else {while(wFlag < rFlag && color[rFlag] == RED)rFlag--; //往前移动 swap(rFlag,wFlag);rFlag--; }} for(i=0; i<strlen(color);i++)printf("%c",color[i]);printf("\n");return 0;
}
补充一个韩信点兵使用flag,用C++写的,使else语句在for循环中只输出一次的效果。
#include<iostream>
#include<iomanip>
using namespace std;int main(){int a, b, c, x=0; bool flag = true;int n=1;while(scanf("%d %d %d", &a,&b,&c) == 3){ for(int i=10;i<100;i++){if(i%3==a && i%5==b && i%7==c){cout<<i;flag = false;break;} else {if(!flag){cout<<"No answer";flag = true; //这里必须重置,不然会使得后面结果重复输出原来的结果break;} }} }return 0;
}
不懂的同学可以在下方留言。
以后继续补充。。。
C语言——设置flag的优点相关推荐
- c语言linux系统时间,【整理】C语言设置Linux系统时间 | 勤奋的小青蛙
今晚完成一个小功能,C语言设置下Linux系统时间.代码如下: #include #include #include #include using namespace std; using std:: ...
- origin9语言设置中文_英雄联盟手游怎么设置繁体 LOL手游繁中设置方法?_英雄联盟手游...
英雄联盟手游终于在海外部分地区上线了,不过玩海外服有一点不好,就是界面都是外文,比如英文.日文.韩文等等.那么英雄联盟手游怎么设置繁体中文呢,这里就来给大家介绍一下LOL手游繁中设置方法,将游戏语言切 ...
- centos7 locale 区域语言设置
1.语言代码参考 Language $LANG value Englist(US) en_US.utf8 Assamese as_IN.utf8 Bengali bn_IN.utf8 Chinese( ...
- oracle选择语言设置,oracle本地语言变量设置
select userenv('language') from dual 察看当前会话的语言环境变量设置: SQL> select userenv('language') from dual; ...
- 安卓多语言设置,深渊巨坑,适配7.0以上,并且解决因WebView产生的问题
前言 安卓的多语言设置配置中strings.xml我就不说怎么弄了,主要说一下后续遇到的坑 正文 上个月接到需求,要给app内添加多语言设置,我心想没啥难的,配置一下strings.xml,加个修改的 ...
- SAP UI5是如何从浏览器读取语言设置并按照优先级排序的
如图,在SAP UI5源代码的sap-ui-core.js这里,对象navigator的属性languages是一个数组,里面存放了从浏览器语言设置里配置的语言,按照优先级从高到低排序: 要获取更多J ...
- 谷歌maps菜单语言设置_Google Maps:拯救未来之路— UX案例研究
谷歌maps菜单语言设置 I have a lousy sense of direction, so Google Maps has always been my right-hand app. On ...
- linux 文件 字符集设置,Linux字符集和系统语言设置-LANG,locale,LC_ALL,POSIX等命令及参数详解...
博文说明[前言]: 本文将通过个人口吻介绍Linux字符集和系统语言设置,包括LANG,locale,LC_ALL,POSIX等命令及参数详解的相关知识,在目前时间点[2017年6月21号]下,所掌握 ...
- iOS 国际化多语言设置 xcode7
iOS 国际化多语言设置 方式一: 1. 在storyboard中创建好UI,然后在 project 里面 Localizables 栏目里面,添加你需要的语言:默认是Englist; 比如这里我添 ...
- thinkphp多语言设置
thinkphp多语言设置有点'高大上',为什么说它有点'高大上'呢?因为本人设置了好久才弄好,而本人之所以弄了好久的原因,竟然是因为'开启语言设置必须得先开启初始化系统的行为类',所以,在这里,因为 ...
最新文章
- datatables增删改查php,jQuery+datatables插件实现Ajax加载数据与增删改查功能示例_白峰_前端开发者...
- 杨植麟:28 岁青年科学家,开挂人生的方法论
- morality and strength
- LinuxMint(Ubuntu)安装文泉驿家族黑体字
- kafka 串讲:架构模型、角色功能梳理
- 说说基于网络的五种IO模型
- matlab电机标定,基于模型的电机标定及高精度电机建模
- 程序员的自我救赎---4.2:消息中心讲解与应用
- this关键字 和 private关键字
- 四、物理优化(4)分区视图
- mysql 导出中间 数据_mysql导出数据库几种方法
- python struct 45s_python32版本,struct.error: argument for 's' must be a bytes object - 小众知识...
- 批处理命令调用WINRAR对文件进行压缩
- CCNA实验:实验一:思科设备基本配置
- Hadoop运行环境搭建
- 问卷分析SPSS+AMOS实证步骤
- 求最大公约数的MATLAB,matlab求最大公约数和最小公倍数
- 恒指期货高手背后的辛酸付出谁又能懂
- 使用Dreamweaver进行一个简单的图文混排1/HTML
- workman 和swoole 区别