zoukankan      html  css  js  c++  java
  • [C语言]数据类型与计算

    -------------------------------------------------------------------------------------------------

    实际的计算中我们接触的数据不仅仅是整型,那么C语言程序中只使用int也会带来一些问题。

    从一个例子开始:

    #include <stdio.h>
    
    int main()
    {
        int a;
        printf("输入一个数,得到除以3的结果 :");
        scanf("%d", &a);
        printf("%d", a/3);  //3,小数部分被自动舍去
        return 0;
    }

    解决方法:

      1. 使用浮点数做除法运算(整数和浮点数做运算,C将把整数转为浮点数,然后进行浮点数运算)

    #include <stdio.h>
    
    int main()
    { 
        double a;
        double b;
        
        printf("请依次输入两个数,如1 2,计算相除的结果:
    ");
        
        scanf("%lf %lf", &a, &b);      //输入用%lf
        
        printf("相除结果是:%f 
    ", a/b);  //输出用%f
    
        return 0;
    }

      2. 直接将整数值改为浮点值参与运算

    #include <stdio.h>
    
    int main()
    {    
        printf("%f", 10.3/3);  //3.333333
    
        return 0;
    }

    数据类型:

      整数

      int

      scanf("%d");

      printf("%d", 5);

      浮点数

      double

      scanf("%lf", &a);

      printf("%f", 10.0);

    计算:

    //一.
    #include <stdio.h> int main() { //计算1小时30分钟与3小时20分的时间差 /* 步骤:1.使用变量存储数值 2.设定换算方式(公式):小时取分钟差后除以60取整数部分,分钟为分钟差后除以60取余 3.得到结果 */ int hour1, minute1; int hour2, minute2; scanf("请输入时间1的小时和分钟:%d %d", &hour1, &minute1); //读入用户的输入值 scanf("请输入时间2的小时和分钟:%d %d", &hour2, &minute2);
       int t1 =
    hour1 * 60 + minute1;
       int t2 = hour2 * 60 + minute2;
       int t = t2 - t1;

       printf("时间差为%d小时%d分钟", t/60, t%60);  //相比下面的方式,效率高些
        /*
       printf(
    "时间差为%d小时%d分钟", ((hour2*60+minute2)-(hour1*60+minute1))/60, ((hour2*60+minute2)-(hour1*60+minute1))%60);
      */
    return 0; }


    //二.
    #include <stdio.h>

     int main()

     {

        //使用if判断计算时间差

        int hour1, minute1;

        int hour2, minute2;

        int h = hour2 - hour1;

        int m = minute2 - minute1;

        printf("请输入小时和分钟:");

        scanf("%d %d", &hour1, &minute1);

        printf("请输入第二个小时和分钟:");

        scanf("%d %d", &hour2, &minute2);

        if( m < 0) {

          m = m + 60;

          h--;

        }

        printf("时间差为:%d小时%d分钟", h, m);

        return 0;

     }

     //注:关系运算符有 相等(==),不等于(!=),大于(>),小于(<),大于等于(>=),小于等于(<=)

      满足关系运算符时,结果为整数1,否则为整数0。

      关系运算符优先级比算术运算符低,但比赋值运算符高。

      判断是否相等和不相等的优先级比其它关系运算符低,连续的关系运算符从左到右执行。

      8 >= 1 + 2    //1

      int a = b > 2  //b>2的运算结果赋值给a  

      1 > 2 == 3 > 4  //1

      1 < 2 > 3     //0

      1 == 2 == 0    //1

      3 == 2 > 1    //0

    求平均值

    #include <stdio.h>
    
    int main()
    {
    //求平均值 int a,b; printf("请输入两个数:"); scanf("%d %d", &a, &b); printf("平均值为:%f", (a + b) / 2.0); }

    运算符优先级:+(正),-(负),*(乘),/(除),%(取余),+(加),-(减),=(赋值)

    交换变量的值:

      由于程序是按步执行,如果简单赋值,最后只会得到两个相同的值,这时候就需要第三个变量。

    #include <stdio.h>
    
    int main()
    {
        int a = 5;
        int b = 8;
        int c;
        
        c = a;
        a = b;
        b = c;
        
        printf("a=%d b=%d", a, b);
    }

    其它数据输入输出类型:http://www.cnblogs.com/farwish/p/4271457.html 

    [C语言]进阶|数据类型: 整数, 浮点, 逻辑, 类型转换和条件运算

    Link: http://www.cnblogs.com/farwish/p/4168470.html

  • 相关阅读:
    jQuery选择器---层次选择器总结
    jQuery选择器---基本选择器总结
    jQuery手风琴
    jQuery(ajax)的使用方法
    css 3d 基础知识
    Android Dynamic Action(动态Action)—像访问网页一样地访问Activity
    笨鸟不乖 是这么设计Android项目架构的
    Android Auto Scroll ViewPager (Smooth)
    [原创] 在线音乐API的研究 (Part 2.1)
    [原创] 浅谈开源项目Android-Universal-Image-Loader(Part 3.1)
  • 原文地址:https://www.cnblogs.com/farwish/p/4168470.html
Copyright © 2011-2022 走看看