输入输出
int ret = scanf("%f%f%f",&a,&b,&c);? 把读入的数值返回给ret 如果输入三个数 则打印出三个数并印出ret=3。
今天主要学习了分支结构中的关系运算、逻辑运算中的的逻辑运算表达式还有三种if语句以及条件运算符、switch语句 同时对自己程序的编写有了更好的学习和锻炼。
? 顺序流程是c语言中最基本的控制结构之一,是按照代码的顺序一行一行执行代码,没有任何分支和循环。
选择 ------ 判断
判断 ----- 通过运算基于判断 ------ 做出选择(构出判断的条件)?
条件:
关系运算(大小关系)> >= < <= == !=
关系运算的结果:真(1) 假(0)
? 注意:c语言中不存在布尔类型 关系运算结果用整型类型保存
? 规则:一家则假
? &&运算截断特性(短路特性)
int a=2,b;
b=(1>2)&& a++ ;由于(1>2)输出结果为:b=0,a=2? 因为(1>2)为假后面的运算不执行。
? 规则:一真则真
? ||运算也有截断特性 如果第一个为1则后面的式子不执行运算。
? 规则:真假相对
? 逻辑运算用来组合多个关系
句法格式(语义)
? if(表达式)? //表达式:做判断的条件
? ? {
? ? ? ? 语句
? ? }//复合语句
含义:先判断表达式的真假,是真则运行符合条件的内容,是假则运行不满足条件的程序
注意:条件后面不要加分号
流程图:
??if(表达式)? //表达式:做判断的条件
? ? {
? ? ? ? 语句1
? ? }else
? ? ? ? ?{
? ? ? ? ? ? ? 语句2
? ? ? ? ?}
含义:判断完表达式,如果为真则执行语句1,否则执行语句2
流程图:
? if(表达式1)
? ? {
? ? ? ? 语句一
? ? }else if(表达式2)
? ? ?{
? ? ?}else if()
? ? ?……
? ? ?else
? ? {
? ? }
注意:二次判断需要在else后面加 if
流程图:
1.不存在单独的else语句,每个else一定有一个if与之对应
2.else与if匹配一定是从里面开始匹配,else与最近的前面的if匹配
表达式1?表达式2:表达式3
判断表达式1,真就执行表达式2,假的话执行表达式3
switch(表达式)? //整形表达式
{
? ? ?case 常量表达式:
? ? ? ? ? ? ? ?语句;
? ? ? ? ? ? ? ?break;
? ? ?case 常量表达式:
? ? ? ? ? ? ? ?语句;
? ? ? ? ? ? ? ?break;
? ? ?case 常量表达式:
? ? ? ? ? ? ? ?语句;
? ? ? ? ? ? ? ?break;
? ? ?case 常量表达式:
? ? ? ? ? ? ? ?语句;
? ? ? ? ? ? ? ?break;
? ……
? ? ? ? default:
? ? ? ? ? ? ? ? ?语句;
? ? ? ? ? ? ? ? ? break;
}
求解表达式 根据结果匹配下面case后面的? 匹配对应上之后则执行case下的语句? 直到遇到了break或者switch的右大括号
1.switch 后面表达式需要一个整型表达式
2.case后面是常量表达式 不能出现变量
1.百分制度 --- 等级制 switch实现 学生成绩:
90-100 --- A? 80-89 --- B? 70-79 --- C? 60-69 --- D? ?<=59 --- E
#include <stdio.h>
int main (void)
{
float num;
int x;
printf("输入学生的成绩:\n");
scanf("%f",&num);
if(num<=100 && num>=0)
{
x = num/10;
switch (x)
{
case 10:
case 9:
printf("A\n");
break;
case 8:
printf("B\n");
break;
case 7:
printf("C\n");
break;
case 6:
printf("D\n");
break;
default:
printf("E\n");
}
}else
printf("您的成绩无效!\n");
return 0;
}
2. 获取月份的天数 switch实现一下
#include<stdio.h>
int main(void)
{
int y,x;
printf("输入日期:\n");
scanf("%d%d",&y,&x);
if(x>0 && x<=12)
{
if((y%4==0 && y%100!=0 || y%400==0) && (x == 2))
{
printf("29\n");
}else
switch(x)
{
case 4:
case 6:
case 9:
case 11:
printf("30\n");
break;
case 2:
printf("28\n");
break;
default:
printf("31\n");
break;
}
}else
printf("日期无效!\n");
return 0;
}
加油!努力做到更好 相信自己!