国家城乡住房建设部网站首页,三室二厅二卫装修效果图,牡丹江哈尔滨网站建设,断桥铝门窗制作需要哪些工具C语言关系运算符
---等于ab!不等于a!b、小于和大于ab 、ab、小于等于、大于等于ab 、ab!非!(0)、!(NULL)
在C99之后#xff0c;C语言开始支持布尔类型#xff0c;头文件是stdbool.h。在文中我所演示的所有代码均是C99版。 在C语言上上述关…C语言关系运算符
---等于ab!不等于a!b、小于和大于ab 、ab、小于等于、大于等于ab 、ab!非!(0)、!(NULL)
在C99之后C语言开始支持布尔类型头文件是stdbool.h。在文中我所演示的所有代码均是C99版。 在C语言上上述关系运算符中如果上述关系成立就为真返回值为1不成立九为假返回值为0。在写代码的时候需要着重注意一下等于的运算符是两个等号一个等号叫做赋值这个在编码时候注意。 逻辑归一化 !!(x) 在C语言中空字符0空数组NULL代表假布尔值均为0其它则为真比如100、-2{456}等它就是真但是以布尔值来讲是只有0和1的所以为了在布尔运算上统一我们需要把这些真真假假的数据归一化。就需要使用操作把当前数据的布尔值调整为0或1 分支结构
if语句
if(表达式){代码段;
}
else if(表达式){代码段;
}
else{代码段
}程序输入一个正整数n,代表学生的成绩根据分数输出分数挡位 n 0,FOOLISH 0n60,FAIL 60n75,MEDIUM 75n100,GOOD #includestdio.hint main(){int n;while(~scanf(%d, n)){if(!n){printf(FOOLISH\n);}else if(n 60){printf(FAIL\n);}else if(n 75){printf(MEDIUM\n); }else if(n 100){printf(GOOD\n);}}
}switch语句
switch (a){case 1:代码块1;case 2: 代码块2;case 3: 代码块3;default:代码块4;
}请使用switch结构完成如下任务程序读入一个整数n: 如果n 1则输出one 如果n 2则输出two 如果n 3则输出three 否则输入error 可以看到输出结果不是我们预期的目的在这里需要说明一下case为条件入口程序进入case对应的代码段一次执行后续的代码知道遇到break或者switch末尾。所以在本题中要注意在case后加上break。
#includestdio.hint main(){int n;while(~scanf(%d, n)){switch(n){case 1: printf(one\n);break;case 2: printf(two\n);break;case 3: printf(three\n);break;default: printf(error\n);}}
}在使用switch语句中要保证参数n能唯一映射整型或者字符型的数据。所以在使用时switch的使用场景没有if的使用场景更多。
判断日期的合法性 题目要求输入一个日期判断这个日期是否存在 135781012月有21天 46911月有30天 闰年的2月是29天 非整百年能被4整除的为闰年在整百年中能被400整除的是闰年。 如果日期合法输出YES不合法则输出NO 思路首先根据题目来讲我们需要三个变量来接受年月日的输入然后12个月的日期我们需要一个数组来存储各个月的日期来减少工作量然后需要一个判断的合法的函数来接收年月日判断是否合法根据返回值再用printf()输出结果
int main(){int year, month, day;int date[13] {0,31,28,31,30,31,30,31,31,30,31,30,31};while(~scanf(%d %d %d, year, month, day)){ printf(%s\n,judge_date(year, month, day, date)? YES : NO);}
}
主函数完成后我们来完成judge_date()函数。首先我们要先判断当前年份是否为闰年这里我们判断闰年也是一个独立的功能我们再需要另一个函数judge_year()实现如果是闰年则返回1如果不是则返回0。那么在数组中我们只需要把28与judge_year()的返回值相加即可。然后考虑年月日的逻辑年是可以为任意整数的因为有公元前和公元后所以year没有需要注意的地方月份的后只可以是1~12日就是要大于0小于数组中各个月份对应的数。
int judge_date(int year, int month, int day, int *date){int temp 0;temp judge_year(year);date[2] date[2]temp;if(month 12 || month 1) return 0;if(day date[month] || day 1 ) return 0;return 1;
}下面按照题目介绍完成judge_year()函数
int judge_year(int year){if ((year % 4 0 year % 100 ! 0 ) ||year % 400 0) return 1;return 0;
}在这个函数完成之后就完成了题目要求但是这里会有一个小bug因为我们使用的是循环读入在judge_date()函数中我们可以看到如果是闰年后281成了29但是一次循环后数组中的数据并没用还原所以我们需要再把二月的数据初始为28。另外我们还可以优化一下的是我们可以把对月份的判断放在首位一旦月份不合法直接结束程序不需要先对数组进行操作。
#includestdio.h int judge_year(int year){if ((year % 4 0 year % 100 ! 0 ) ||year % 400 0) return 1;return 0;
}int judge_date(int year, int month, int day, int *date){if(month 12 || month 1) return 0;date[2] date[2] judge_year(year);if(day date[month] || day 1 ) return 0;date[2] 28;return 1;
}int main(){int year, month, day;int date[13] {0,31,28,31,30,31,30,31,31,30,31,30,31};while(~scanf(%d %d %d, year, month, day)){ printf(%s\n,judge_date(year, month, day, date)? YES : NO);}
}