flag的标志判断应用
利用flag作为变量状态标识可精简代码,且有助于判断情况,如判断素数时的运用,就非常鲜明。
#include<stdio.h>
int main()
{int a,i;int flag=0;printf("please input a number:\n");scanf("%d",&a);if(a==1)
printf("%d is not a sushu!\n",a);for(i=2;i<a;i++){if(a%i==0)flag=1;}if(flag==1)printf("%d is not a sushu!\n",a);elseprintf("%d is a sushu!\n",a);
}
这里的flag=0代表为素数,flag=1代表不是素数。
同样运用到字符数组中剪切单词也是不可少的部分。
列如把一句英文拆分成单个单词换行输出:
#include<stdio.h>
#include<string.h>
int main()
{int i,flag=0,sum=0;char in[80]="",out[80]="";int p[80];printf("请输入一段英文:\n");gets(in);printf("分离后的单词为:\n");for(i=0;in[i]!='\0';i++){if(in[i]!=' '&&flag==0){p[sum]=i;sum++;flag=1;}else if(in[i]==' ')]{in[i]='\0';flag=0;}}for(i=0;i<sum;i++)puts(in+p[i]);
}
运行结果:
代码分析
首先定义flag=0为初始状态表示正处理到空格处(非单词)
flag=1则情况相反;
以下代码为运用flag作为标志的重要部分:
for(i=0;in[i]!='\0';i++){if(in[i]!=' '&&flag==0){p[sum]=i;sum++;flag=1;}else if(in[i]==' ')]{in[i]='\0';//把空格字符换成'\0'便于输出flag=0;}}
为什么在第一遍就把flag=0改变状态为flag=1;
p[sum]=i为的是记录单词开始及单词的字母个数与以下的输出代码相比较不难发现:
for(i=0;i<sum;i++)puts(in+p[i]);
puts(in+p[i]),编译器在输出时会把整个字符串一个一个判断输出,p[i]这个数字数组中的 i 为的是记录整个字符串有多少单词,而至于p[0]p[1]…这种下标则是表示着一个单词有多少字母,就对应输出多少个字符遇到’\0’会自动换行,由此就可以到达剪切一句英文的每个单词的作用。
flag的标志判断应用相关推荐
- 利用文件头标志判断文件类型
简介 我们都知道,文件的扩展名是用来识别文件类型的.通过给他指定扩展名,我们可以告诉自己,也告诉操作系统我们想用什么方式打开这个文件.比如我么会把.jpg的文件默认用图片显示软件打开,.zip 文件会 ...
- c语言之判断电压最大值最小值,基于单片机的频率计的C语言源代码
描述 本文是基于AT89C51单片机的频率计的C源程序.该频率计主要实现的功能有如下几个: 1. 测试功能 它表明数字频率计所具备的全部测试功能,一般包括测频,周期,累计脉冲数,频率比,时间间隔及自较 ...
- 王爽 汇编语言第三版 第11章 标志寄存器
条件码: ① OF(Overflow Flag)溢出标志,溢出时为1,否则置0.标明一个溢出了的计算,如:结构和目标不匹配. ② SF(Sign Flag)符号标志,结果为负时置1,否则置0. ③ Z ...
- 判断数是否为素数与素数输出
素数的概念:素数也叫质数,是一种只能被自己本身和1整除的数并且大于1,当然0与1不是素数. 1.判断单个数是否为素数(多组输入) 我的思路是,首先输入一个数,利用素数的概念来判断是非为素数,是的话输出 ...
- 用python实现判断9*9数独的正确性
import sysdef panduan(list):len_m = len(list)# 定义一个基准,拿每一行与每个宫排序之后跟temp对比,一致则说明,每一行都是1到9的数字temp = [' ...
- 状态标志与状态标志寄存器
1. 什么是状态标志寄存器 状态标志位(Status Flags): 状态标志被分配到到一个称为标志寄存器(Status Flags Register)的特殊寄存器中. 该寄存器包含: Zero Fl ...
- 汇编语言标志位 含义 NV UP EI NG NZ AC PE CY
缩写原意:<?xml:namespace prefix = o /> Overflow of = OV NV [No Overflow] Direction df = DN (decrem ...
- 汇编语言 标志位介绍
一.运算结果标志位 1.进位标志CF(Carry Flag) 进位标志CF主要用来反映运算是否产生进位或借位.如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0. 使用该标志位的情 ...
- AcWing 0x00. 语法基础课【Python3】版题解-顺序/判断/循环语句
AcWing语法基础课[Python3]版题解-顺序/判断/循环语句 [AcWing] [AcWing 语法基础课] [AcWing 0x00. 语法基础课[Python3]版题解-顺序/判断/循环语 ...
最新文章
- sas数据集怎么导出_[求助]如何导出sas数据集的标签?
- java 读取 远程文件_利用JAVA获取远程文件及使用断点续传 供学习者使用
- SQL语句从入门到精通之笔记大全
- apache2启动和停止操作
- centos7修改系统语言为简体中文
- Python的matplotlib(2)
- leetcode 649. Dota2 参议院(贪心算法)
- 最快配置本地Yum仓库
- mysql数据库复制功能配置,最详细的mysql数据库主从复制功能配置教程(docker版本)...
- Effective Go中文版(更新中)
- idea java mapper.xml文件sql黄色背景解决
- JavaScript 凭什么力压 Java、Python 横扫编程语言榜单?
- hive外部表/内部表路径知识点
- UVA12279 LA4853 Emoogle Balance【水题】
- 韩昊20190912-3 词频统计
- 你要知道的N个Android适配问题
- 语义计算、知识图谱与智能问答(医药常识问答实例)
- 关于Field Exit 整理的一点资料
- 用Python分析波士顿的房价,酸爽!!!
- 超低功耗LCD液晶显示驱动芯片(IC)-VKL128-稳定性好,超低工作电流,低休眠电流-技术开发资料