C语言_0207笔记_运算赋值/变量定义/浮点数/交换值

2.1.2

2.1.3

2.1.4

2.1.5

2.1.6

2.2.1

2.2.2

2.2.3

2.2.4

知识点提炼

  • 四则运算

  • 赋值

  • 上图,可以看到=赋值虽然是最低优先级,但也属于运算符的一种。也是一种运算,带有结果。

如:a=b=6,由于自右向左结合,实际过程是a=(b=6)。//运算结果是b被赋予的值,也就是6。

  • 自右向左结合的只有赋值和单目+-。

  • 复合赋值:五个基本赋值符+-*/%可以和“=”结合形成复合赋值符:+=、-=、*=、/=、%=

a=a+5;
a+=5;//等效
  • 递增递减运算符

  • ++,--;都是单目运算符,作用就是加在变量上,让变量加一或者减一;

a++;
a+=1;
a=a+1;//等效
  • 前缀形式:++a,后缀形式:a++。都是运算,有结果,但是结果不一样:

  • ++a:先自增后取值;a++:先取值后自增

int a=10;
printf("%d",a++);//10 先取值
printf("%d",a);//11 已经自增了
printf("%d",++a);//12 先自增
printf("%d",a);//12 再取值
  • 变量的定义和赋值

  • 变量,用来存放数据的地方,能在程序运行过程中保存输入的数据,参与到之后的计算之中,并且在程序结束之后销毁。

  • 变量的定义<数据类型> <变量名>=<初始值>

  • 变量名字叫标识符,是用来区分变量和别的东西,给变量起名不能瞎起,标准是:字母,数字,下划线,而且数字不能打头。

  • int,for ,char,double之类的不能起,这些是C语言的关键字(也叫保留字),如果用了会报错。

  • 当有多个变量需要定义时,可以在一行里用逗号隔开相同类型的变量节省空间。

  • 如果在运算中没有初始化,这个值(内存地址)就可能会直接参与计算,进而得到错误结果。所以在变量第一次被使用(也就是出现在赋值号右边)之前,要么就给他初始化为0,要么就给他赋别的值。

  • 变量的赋值,初始化需要每个变量分开写。如:

int a,b,c=0;(此时ab都没有初始化)
int a=0,b=0,c=0,d=1;(此时全部初始化)
  • 浮点数

  • 自动转换类型:当浮点数和整数在一起运算时,C语言会自动把整数转换为浮点数,然后进行浮点数的运算

  • 如果用double/float,scanf中需要把%d替换为%lf。printf中把%d替换为%f。

  • 套路:交换变量值

int a=5,b=6;
int t=a;
a=b;
b=t;
  • 当我们有两杯水,一杯是加了苹果汁的a,一杯是白水b。如何将两杯水对调呢?答案是找一个空杯子。先将a杯的水倒入空杯子,完成后a杯是空的,再将白水倒入a杯子,此时b杯空。之后将那个额外的杯子里的水倒入b,这样a杯装的就是白水,b杯装的就是苹果汁了。

项目学习记录

0207height

#include <stdio.h>
    int main(){
        printf("请分别输入身高的英尺和英寸,如输入\"5 7\"表示5英尺7英寸:");
        float foot=0;
        float inch=0;
        scanf("%f %f",&foot,&inch);
        //printf("身高为%f米。\n",(foot+inch/12)*0.3048);
        //测试过程中inch不起作用---- 【inch(int)/12结果只能是整数】0 
        //(foot+inch/12.0) 12.0是浮点数,【整数/浮点数结果是浮点数】,类型自动转换。 
        printf("身高为%f米。\n",(foot+inch/12)*0.3048);
        return 0;
    }
  • 原来是因为foot和inch的类型都是整数,而整数相乘的结果只能是整数,其中7/12这个式子的小数部分就被舍弃掉,计算结果就和正确答案有所偏差了。

  • 例子:10/3*3 = 10? NO,实际上结果是9;10是整数,10.0是浮点数。因此10.0/3*3 = 10.0。

0207time

#include <stdio.h>
    int main(){
        int h1,m1,h2,m2;
        int t1,t2;
            printf("请输入第一个时间,用空格隔开:");
            scanf("%d %d",&h1,&m1);
            printf("请输入第二个时间,用空格隔开:");
            scanf("%d %d",&h2,&m2);
            t1=h1*60+m1;
            t2=h2*60+m2;
        int sub=0;
            sub=t2-t1;
        int newh,newm;
            newh=sub/60;
            newm=sub%60;
        printf("时间差为%d时%d分。",newh,newm);
        return 0;
    }

0207exchange

#include <stdio.h>
 int main(){
     int a=1;
     int b=2;
     printf("交换前a=%d,b=%d\t",a,b);
     int c=0;
     //交换
     c=a;
     a=b;
     b=c;
    printf("交换后a=%d,b=%d",a,b);
    return 0;
 }
 
  • 调试学习 上面的打勾选项为调试

  • 1.先编译并运行

  • 2.设置断点,即执行到断点命令前

  • 3.点击“下一步”查看变量以及终端输出的变化

0207interestbank

#include <stdio.h>
    int main()
    {
        float x; 
        //int x; 定义变量为int,输入又是浮点型,无法正确赋值 
        printf("请输入最初存入的金额(元):");
        scanf("%f",&x);//scanf的%d 不能少 
        printf("%f\n",x);
        int i=0;
        float interst;
        while(i<3)//0 1 2
        {
            interst=x*0.033;
            x+=interst;
            i++;
            printf("%f",x);
        }
        printf("3年后本息余额共%f元",x);
        return 0;
    }
  
  • 如果要改成任意年限的话,在定义一个变量控制循环即可。

0207average

#include <stdio.h>
    int main(){
        int a,b;
        printf("请输入两个值:");
        scanf("%d %d",&a,&b);
        printf("平均值为%f",(a+b)/2.0);
        //除以2.0,结果值变成浮点数 
        return 0;
    }

参考指路原文链接:https://blog.csdn.net/m0_56661338/article/details/123216570

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值