C语言程序学习(五)笔记

来源:互联网 发布:excel删除数据不重复项 编辑:程序博客网 时间:2024/05/16 11:21

做判断

如果

if(条件成立){
...
条件成立运行大括号里,没有成立跳过。

判断的条件:关系运算,做比较的运算符

条件(关系运算符)


两个值的关系符合关系运算符的预期时,关系运算的结果为整数1,否则为0 
(关系成立,结果为1,关系不成立,结果为0)
printf("%d\n",5==3);论断不成立,结果为0
printf("%d\n",5>3);论断成立,结果为1
printf("%d\n",5<=3);论断不成立,结果为0

     结果    

优先级

所有的关系运算符的优先级比算术运算符的低,但是比附值运算符的高
7 > = 3 + 4   先加再做比较
int r = a > 0 ;  先比较再附值
验证
结果为 1 。

判断是否相等的 == 和 != 的优先级 比其他的低
连续的的关系运算符时从左到右进行的
5 > 3 == 6 > 4  ( 5大于3 是否等于 6大于4 )
6 > 5 > 4   ( 连续关系的运算,6大于5成立,结果为1,1大于4不成立,结果为0 )
a == b == 6 ( a是否等于b,得到结果再判断是否等于6 )
a == b > 0 ( b是否大于0,得到结果再判断是否等于a )

找零计算器

#include <stdio.h>
int main()
{
// 初始化
int price = 0;
int bill = 0;
// 读入金额和票面
printf("请输入金额:");
scanf("%d", &price);
printf("请输入票面:");
scanf("%d", &bill);
// 计算找零
printf("应该找您:%d\n", bill - price);
return 0;
}

注释

以两个斜杠“//”开头得语句把程序分成三个部分:
1.初始化
2.读入金额和票面
3.计算并打印找零
(//是C99的独有注释,ANSI C不支持)

注释(comment)

插入再程序代码中,用来向读者提供解释信息。
他们对于程序的功能没有任何影响,但是往往能使得程序更容易被人类读者理解。

/* */注释

延续数行的注释,要用多行注释的格式来写。(传统C语言注释符号)
多行注释由一对字符序列“/*”开始,以“*/”结束。
也可以用于一行内的注释
int ak = 47/*36*/,y=9;  ( 符号中的36既是注释 )

If语句与流程图



椭圆行 ( 开始或结束 )
平行四边行 ( 输入或输出 )
菱形  ( 判断 )

 else

else:否则的话

比较数的大小

两种方式编程


第一种比较大小,用if...else...语句,将大值赋予max,然后输出。
第二种,直接将b赋予max,然后用if语句比较大小,满足a>b,则将a附值给max,不满足直接输出b。

if和else后面也可以没有{}而是一条语句

if语句

一个基本的if语句由一个关键字if开头,跟上在括号里的一个表示条件的逻辑表达是,然后是一对大括号“{}”之间的若干条语句。
如果表示条件的逻辑表达式的结果不是0,那么就执行后面跟着的这对大括号中的语句,否则就跳过这些语句不执行,而继续下面的其他语句。
    
     if ( total > amount )
              total += amount +10 ;

( if语句后面要么跟着大括号“{}”,要么跟着一句语句。但不能在圆括号后跟表示语句结束的封号“;”,if圆括号后不是if语句结束的位置。)
( 后面的赋值语句是写在if的下一行,并且缩进了,在这行结束时有一个表示语句结束的“;”。表明这条赋值语句是if语句的一部分,
     if语句拥有和控制这条赋值语句,决定它是否要被执行。 )
( else和if一样,可以在圆括号后没有大括号,但是只有一句语句是有效的 )

if和else可以不用{},但是最好用{},方便读者阅读,方便程序的调试,并且可以添加多条语句。

计算薪水



判断成绩


三个数比较大小





#include <stdio.h>


int main(int argc, const char * argv[])

{


    //比较三个数大小

    int a,b,c;

    printf("请输入三个数");

    scanf("%d %d %d",&a,&b,&c);

    

    int max=0;

    

    

if ( a>b ) {

if ( a>c ) {

max = a;  //a大于b同时a大于c

} else {

max = c;

}//ab大,但是小于c

} else {

if ( b>c ) {

max = b;

} else {

max = c;

}

}


    

    printf("The max is %d\n",max);

    

    return 0;

}


嵌套的判断
当if的条件满足或者不满足的时候,要执行的语句也可以是一条if或if-else语句 这就是嵌套的if语句

if (code==READY)
     if (count<20)
        printf("一切正常是\n");
     else
        printf("继续等待\n");


else的匹配规则---else总是和最近的那个if匹配


在没有括号的情况下)

在if或else后总是用{}即使只有一条语句的时候

分段函数


f(x)=-1;x<0
         0;x=0
       2x;x>0
if  (x<0){
    f=-1;
}  else if (x==0){
   f=0;
}  else {
   f=2*x;
}

级联的if-else if

if (exp1)
   st1;
else if(exp2)
   st2;
else
   st3

if语句常见的错误

忘了大括号
if后面的分号
错误使用==和=
使人困惑的else

代码风格

在if和else之后必须加上大括号形成语句块;

大括号内的语句缩进一个tab的位置;


 ||  屏幕小,看更多的语句              ||        大括号前后对应方便阅读           ||  括号和语句分开,方便注释调试语句||   


switch-case语句

多路分支-判断

if (type==1)
   printf("你好");
else if ("type==2")
   printf("早上好");
else if("type==3")
   printf("晚上好");
else if("type==4")
  printf("再见");
else
  printf("啊,什么啊?");

=============>改写成switch-case
                                              switch (type)
                                              {
                                                 case 1:
                                                     printf("你好");
                                                   break;
                                                 case 2:
                                                     printf("早上好");
                                                  break; 
                                                 case 3:
                                                     printf("晚上好");
                                                 break;
                                                 case 4:
                                                     printf("再见");
                                                  break;
                                                 default:
                                                    printf("啊,什么啊?");
                                               }     

swich-case

swich(控制表达式){
case 常量:
        语句
        ..........
case 常量:

       语句

       ..........

default:

       语句
}       

=========> 这个控制表达式只能是整数型的结果

                                   常量可以是常数,也可以是常数计算的表达式

break

switch 语句可以看作是一种基于计算的跳转,计算控制表达式的值后,程序会跳转到相匹配的case(分支标号)处。

分支标号只是说明switch内部位置的路径在执行完分支中的最后一条语句后,如果后面没有break,就会顺序执行到下面的case里去,直到遇到一个break,或者switch结束为止。

case是入口

break是出口



0 0
原创粉丝点击