c语言lesson03

来源:互联网 发布:mdf和ldf恢复数据库 编辑:程序博客网 时间:2024/06/04 00:24
BOOL数据类型
BOOL数据类型,是一种表示非真即假的数据类型,布尔类型的变量只有YES和NO两个值.YES表示表达式结果为真,NO表示表达式结果为假.
在c语言中,认为非0即为真.
关系运算符
> >= < <= == !=
主要用于比较运算,返回的结果只有真假两种情况,结果值用BOOL类型变量存储,
注意:判断两个数是否相等,用==(双等号).
逻辑运算符
&&(逻辑与):运算符两边表达式同时为真的时候,整个逻辑表达式的结果为真.
 || (逻辑或);运算符两边表达式同时为假的时候,整个逻辑表达式的结果为假.
 ! (逻辑非):将表达式的结果取反.
注意事项:
注意逻辑与和逻辑或的短路现象


说明:
(1) 关键字 if 后面括号中不能为空,否则编译时会提示有错误.
(2) if 后面的操作语句虽然可以省略,但不提倡这样编写程序.
(3) 关键字 else 后面也应有操作语句,如果没有操作语句可以省略 else 字句.
(4) 表达式通常为关系表达式或逻辑表达式,也可以是其他类型的表达式,如赋值表达式、算术表达式等,甚至也可以是任意类型的常量或变量

(5) 各操作语句可以是一条,也可以是多条.就一条而言无论是 if 字句、else  if 字句还是 else 字句,都是到第一个分号处结束.如果某个子句的操作语句有两条及其以上,需用 { } 将他们括起来构成符合语句,否则有可能出现语法错误,或者程序能够执行但执行情况与预期不符.

条件运算符:  ?  :
条件表达式: 表达式1 ? 表达式2 : 表达式3
运算规则:先求解表达式1,非0,求解表达式2,表达式2的值为条件表达式的值;
如果表达式的值为0,求解表达式3,表达式3的值为条件表达式的值.

switch  (整型表达式)  {

  case  值1 : 
     语句 1 ;
     break;
  case  值2 :
     语句 2 ;
     break;
  default :
     语句 3;
     break;
}


注意事项:
在case后的各常量表达式的值不能相同,否则会出现错误
default 后边的break可以舍掉
整个default语句都可以舍掉
多个case可以运行一个语句块
case中定义变量需要加 { }


switch语句和if-else级联式比较,switch语句往往比级联式更容易阅读,更直观.
switch--开关,case--情况,开关决定发生的情况.
case后边的标签只能是整型常量或者整型变量表达式,不能用变量作为case的标签.




作业:
1.比较并输出三个数的最大值,最小值.以及中间值. 


    int num1 = 0,num2 =0,num3 = 0;

    int max = 0,min =0,mid = 0;

    //先用条件运算符

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

    scanf("%d%d%d",&num1,&num2,&num3);

    max = num1 > num2 ? (num1 > num3 ? num1 : num3) : (num2 > num3 ? num2 : num3);

    min = num1 < num2 ? (num1 < num3 ? num1 : num3) : (num2 < num3 ? num2 : num3);

    mid = num1 + num2 + num3 - max - min;

    printf("max=%d,min=%d,mid=%d\n",max,min,mid);

    //if...else 语句

    if (num1 > num2)

    {

        if (num1 > num3)

        {

            max = num1;

        }

        else

        {

            max = num3;

        }

    }

    else

    {

        if (num2 > num3)

        {

            max = num2;

        }

        else

        {

            max = num3;

        }

    }

    if (num1 < num2)

    {

        if (num1 < num3)

        {

            min = num1;

        }

        else

        {

            min = num3;

        }

    }

    else

    {

        if (num2 < num3)

        {

            min = num2;

        }

        else

        {

            min = num3;

        }

    }

//2.输入3个数,判断是否能构成三角形。

    float a1,a2,a3;

    printf("2.请输入三角形的三条边:");

    scanf("%f%f%f",&a1,&a2,&a3);

    if ((a1+a2>a3)&&(a1+a3>a2)&&(a2+a3>a1))

    {

        printf("这三条边能构成三角形\n");

    }

    else

    {

        printf("这三条边不能构成三角形\n");

    }

    

 

//3.铁路托运行李规定:行李重不超过50公斤的,托运费按0.15元每公斤计算,如果超过50公斤,超出部分每公斤加收0.1元。编程实现上述功能。

    

    float w,m;

    printf("3.请输入行李重量(公斤):");

    scanf("%f",&w);

    if (w>0&&w<=50)

    {

        m=0.15*w;

    } else {

        m=0.15*50+(w-50)*0.25;

    }

    printf("运费为:%-5.2f\n",m);

    

 

    

//4.有一个函数:x<1的时候,y = x1<=x<10的时候,y=2x-1x>=10的时候,y=3x-11。写一段程序,输入x,输出y值。

    

    float x,y;

    printf("4.输入x=");

    scanf("%f",&x);

    if (x<1)

    {

        y=x;

    }

    else if(x>=1&&x<10)

    {

        y=2*x-1;

    }

    else

    {

        y=3*x-11;

    }

    printf("y=%f\n",y);

 


    

//5.编制一个完成两个数四则运算程序。如:用户输入34+56则输出结果为90.00,要求运算结果保留2位有效小数,用户输入时将2个运算数以及运算符都输入,根据运算符求结果。

    float x2=0,y2=0;

    char s;

    printf("5.请输入四则运算式:");

    scanf("%f%c%f",&x2,&s,&y2);

    switch (s) {

        case '+':

            printf("%g+%g=%.2f\n",x2,y2,x2+y2);

            break;

        case '-':

            printf("%g-%g=%.2f\n",x2,y2,x2-y2);

            break;

        case '*':

            printf("%g*%g=%.2f\n",x2,y2,x2*y2);

            break;

        case '/':

            printf("%g/%g=%.2f\n",x2,y2,x2/y2);

            break;

    }


    

//6.编写一个程序,输入某人的身高(cm)和体重(kg),按下式确定其体重是否为标准、过胖或过瘦。(1)标准体重=身高-110;(2)超过标准体重5kg(即大于5kg)为过胖;(3)低于标准体重5kg(即小于5kg)为过瘦

    

    

    float height,weight;

    printf("6.输入身高(cm)和体重(kg):");

    scanf("%f%f",&height,&weight);

    if (weight-(height-110)>5)

    {

        printf("体重过胖!\n");

    }

    else if (weight-(height-110) < -5)

    {

        printf("体重过瘦!\n");

    }

    else

    {

        printf("标准体重!\n");

    }

    7.编写程序计算身高:每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成          人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。设faHeight为其父身高,moHeight为其母身高,身高预测公式为:

    男性成人时身高 = (faHeight + moHeight) * 0.54(cm)

    女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)

    此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%

    程序要求:父亲的身高与母亲的身高、小孩的性别、是否喜爱体育锻炼和是否有良好的卫生饮食习惯也从键盘上输入,最终输出预测的身高。

//    提示:小孩性别的输入方式,可在屏幕给出提示请输入小孩的性别(男孩输入M,女孩输入F):,然后通过if语句来判断从键盘输入的字符是M还是F。是否喜爱体育锻炼也可以通过类似的方式实现。

float faHeight=0,moHeight=0,childHeight=0;

    char   gender='\0',exercise='\0',habbit='\0';

    printf("请输入父亲的身高,单位为cm\n");

    scanf("%f",&faHeight);

    printf("请输入母亲的身高,单位为cm\n");

    scanf("%f",&moHeight);

    getchar();//吸收缓冲区中最后输入的回车换行符,并做丢弃处理。

    printf("请输入小孩的性别:F(女孩)/M(男孩)\n");

    scanf("%c",&gender);

    getchar();

    printf("请输入是否喜欢锻炼:\n");

    scanf("%c",&exercise);

    getchar();

    printf("请输入是否有良好的饮食习惯!\n");

    scanf("%c",&habbit);

    if (gender=='M') {

        childHeight=(faHeight+moHeight)*0.54;

    }

    else{

        childHeight=(faHeight*0.923+moHeight)*0.5;

    }

    if(exercise=='Y'&&habbit=='N')

    {

        childHeight*=1.02;

    }

    else  if(exercise=='N'&&habbit=='Y')

    {

        childHeight*=1.015;

    }

    else  if(exercise=='Y'&&habbit=='Y')

    {

        childHeight*=1.02;

        childHeight*=1.015;

    }

    printf("小孩的身高为:%f\n",childHeight);


0 0