zoukankan      html  css  js  c++  java
  • 运算符、表达式、语句

    //计算多个鞋尺码对应的英寸的长度
    #include<stdio.h>
    #define ADJUST 7.64
    #define SCALE 0.352
    int main(void )
    {
    double shoe,foot;

    printf("Shoe size(men's) foot length ");
    shoe = 3.0;
    while(shoe < 18.5)
    {
    foot = SCALE*shoe + ADJUST;
    printf("%10.1f %15.2f inches ",shoe,foot);
    shoe = shoe + 1.0;
    }
    printf("If the shoe fits,wear it. ");
    return 0;


    }

    //此处的例子较简单,主要是为了试验怎么使列对齐--不要用空格键,用tab键
    #include<stdio.h>
    int main(void)
    {
    int jane,tarzan,cheeta;

    cheeta = tarzan = jane = 68;
    printf(" cheeta tarzan jane ");
    printf("Frist round score %8d %8d %8d ",cheeta,tarzan,jane);
    return 0;

    }

    //指数增长 --小技巧:计算printf()中格式说明符的位数,并且使用tab键来达到列对齐的效果,-符号的左对齐也很有用

    #include<stdio.h>

    #define SQUARES 64 // 棋盘上的方格数
    #define CROP 1E15 //以粒计的美国小麦的产量

    int main(void)
    {
    double current,total;
    int count = 1;

    printf("square grains total ");
    printf("fraction of ");
    printf(" added grain ");
    printf("US total ");
    total = current = 1.0;
    printf("%-4d %-13.2e %-12.2e %-12.2e ",count,current,total,total/CROP);

    while(count < SQUARES)
    {
    count = count + 1;
    current = 2.0 *current;

    total = total + current;
    printf("%-4d %-13.2e %-12.2e %-12.2e ",count,current,total,total/CROP);

    }
    printf("That's all. ");

    return 0;

    }


    除法的注意点:
    /*
    整数除以整数是进行截尾,整数与浮点数进行混合运算时,结果是浮点数。
    实际上计算机不能真正用整数去除浮点数,所以操作数将两个操作数转变为一致的类型.
    */

    关于sizeof的一些知识:
    /*
    1.sizeof运算符以字节位单位返回其操作数的大小
    2.在C中,1个字节被定义为char类型所占用空间的大小。在过去,1个字节通常是8位,但是一些字符集可能使用更大的字节
    3.操作数可以是具体的数据对象:变量名,类型......
    4.返回类型为size_t,无符号整数类型,是C的头文件系统用typedef定义的。这样当你使用它的时候,编译器会用适合您的系统的标准类型代替之。
    5.可以用%u,%lu来代替
    */


    %的注意点
    /*
    1.取模运算符%用于整数运算
    2.C99规定整数除法位“趋零截尾”,从而模的正负与第一个操作数相同
    */

    ++和--的注意点
    /*
    1.如果一个变量出现在同一个函数的多个参数中时,不要将增量或者减量运算符用于它上面
    2.当一个变量多次出现在一个表达式时,不要将增量或减量运算符运用到它的上面

    例子:
    while(num < 2)
    {
    printf("%10d %10d ",num,num*num++);

    }
    这就可能为5,25;6,25;6,30;


    ans = num / 2 + 5*(1 + num++);


    n = 3;
    y = n++ + n++;

    */


    表达式和语句:
    /*
    1.每个表达式都有一个值。如: 6+(c = 3+8)的值是17
    2.有用的语句是一条完整的指令,3+4;就不是。
    3.不是所有完整的指令都是语句。如:x = 6 + (y=5);字表达式y=5是一个完整的指令,但它只是一个语句的一部分
    4.从C的角度来看,主要目的是对表达式求值,副作用(side effect)是对数据对象和文件的修改
    */


    类型转换:
    /*
    --提升
    1.出现在表达式里或者作为函数的参数时,有符号和无符号的char和short类型都将自动转变为int。(在short = int时,unsigned short=>unsigned int而不是变为int)
    2.float=>double
    3.在包含两种数据类型的运算里,两个值都将转换成两种类型里较高的级别
    3.类型级别从高到低的顺序是:long double、double、float、unsigned long long、long long、unsigned long、long、unsigned int、int
    (int=long时,unsigned int => long)
    --降级
    趋零截尾”或舍入,float->整数类型时是截尾
    */

    带有参数的函数:
    /*
    C99--实际参数,形式参量。这里参量是变量而参数是由函数调用提供的值
    */


    下面是程序为一个总结这章:
    #include<stdio.h>

    const int S_PER_M = 60; //每分钟的秒数
    const int S_PER_H = 3600; //每小时的秒数
    const double M_PER_K = 0.62137;//每公里的英里数

    int main(void)
    {
    double distk,distm; //分别以公里和英里计的跑过的距离
    double rate; //以英里/小时为单位的平均速度
    int min,sec; //跑步用的分钟数和秒数
    int time; //用秒表示的跑步用时
    double mtime; //跑完一公里所用的时间,以秒计
    int mmin,msec; //跑完一公里所用的时间,以分钟和秒计

    printf("This programe converts your time for a metric race ");
    printf("to a time for running a mile and to your average ");
    printf("speed in miles per hour. ");
    printf("Please enter,in kilmeters,the distance run. ");
    scanf("%lf",&distk); //读取一个double类型的数值

    printf("Next enter the time in minutes and seconds. ");
    printf("Begin by entering the minutes. ");
    scanf("%d",&min);

    printf("Now enter the seconds. ");
    scanf("%d",&sec);

    // 把时间转换为全部用秒表示
    time = S_PER_M * min +sec;
    // 把公里转换为英里
    distm = M_PER_K * distk;
    // 英里/秒 X 秒/小时 = 英里/小时
    rate = distm / time * S_PER_H;
    // 时间/距离 = 跑完每英里的用时
    mtime = (double)time / distm;
    mmin = (int)mtime / S_PER_M; //求出分钟数
    msec = (int)mtime % S_PER_M; //求出剩余的秒数

    printf("Your ran %1.2f km(%1.2f miles)in %d min,%d sec. ",
    distk,distm,min,sec);
    printf("That pace corresponds to running a mile in %d min,",
    mmin);
    printf("%d sec. Your average speed was %1.2f mph. ",msec,
    rate);

    return 0;


    }

    注:主要练规法



  • 相关阅读:
    SQL 2005的ROW_NUMBER()实现分页的功能
    UML建模工具集
    挽救崩溃的WinXP操作系统四招
    16个经典面试问题回答思路
    自动关闭弹出式窗口
    在winform中嵌入Flash(swf)的方法及常见问题的解决
    C#获取安装程序所在的路径
    转载:C#操作注册表
    C#实现Dll(OCX)控件自动注册的两种方法
    转载:C#创建和修改注册信息
  • 原文地址:https://www.cnblogs.com/zxj-262410/p/6691229.html
Copyright © 2011-2022 走看看