计算

1.变量

change.c

#include<stdio.h>
int main()
{
   int price=0,change=0;
   int amount=0;
   
   printf("请输入金额(元):");
   scanf("%d",&price);
   
   printf("请输入票面:");
   scanf("%d",&amount);
   
   change=amount-price;
   
   printf("找您%d元。\n",change);
   return 0;
   
}

如何输入:输入在终端窗口中,且以行为单位进行

  • int price =0;

  • 此行,定义了一个变量。变量名为price,类型是int,初始值是0.

  • 变量是一个保存数据的地方。

定义变量

  • <类型名称><变量名称>;

  • int price;

  • int amount;

  • int price,amount;

    分号表示一行结束。

变量的名字

  1. 变量的名字是一种"标识符",是用来识别这个和那个的不同名字。

  2. 标识符只能由字母,数字和下划线组成,数字不能出现在第一个位置上,C语言关键字不能做标识符。

变量赋值

  • int price =0;

  • 这一行,定义了一个变量。名字是price,类型是int,初始值是0。

  • 式子price =0,中"="是赋值运算符,表示将"="右边的值赋给左边的变量。

赋值是一个动作,是动态的

所有变量应在被使用前赋一次值,若没初始化,则变量值不确定

变量初始化

  • <类型名称><变量名称>=<初始值>

  • int price =0;

  • int amount =100;

  • int price =0,amount=100;

读整数

  • scanf("%d",&price);

  • 函数scanf读入一个整数,将读到的结果赋值给变量price

  • 小心price前面的&

  • f是format,意为格式化

关于scanf

出现在scanf格式字符串中的东西,是一定要你输入的东西,而不是给你看的东西。

一个scanf输入多个变量时,两个%d之间用空格隔开。

常量VS变量

 

 

2.数据类型

  • 整数的运算结果只能是整数。

  • 10和10.0是两个不同的数。

  • 10.0是浮点数。

  • 10/3*3=9<10

浮点数

  1. :带小数点的数值。

  2. 当浮点数和整数放到一起运算时,C会将整数转化为浮点数,然后进行浮点数的运算。

  3. double:双精度浮点数;float:单精度浮点数。

数据类型

  • 整数

  • int

  • printf("%d",...)

  • scanf("%d",&...)

  • 带小数点的数(浮点数)

  • double

  • printf("%f",...)

  • scanf("%lf",&...)

 

3.表达式

  • 一个表达式是一系列运算符和算子的组合,用来计算一个值。

运算符

  • 运算符:进行运算的动作,如加法运算符"+",减法运算符"-"。

  • 算子:参与运算的值,这个值可能是常数,也可能是变量,还可能是一个方法的返回值。

 

a = b + 5

  • a b 5 为算子

  • = + 为运算符

 

计算时间差

#include<stdio.h>
int main()
{
   int hour1,minute1;
   int hour2,minute2;
   
   printf("请输入hour1及minute1.\n");
   scanf("%d %d",&hour1,&minute1);
   
   printf("请输入hour2及minute2.\n");
   scanf("%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);
   
return 0;
   
}
  • hour*60+minute转化为分钟单位。

  • t/60得小时部分,t%60得分钟单位。

 

运算优先级

优先级

 

赋值运算符

  • 赋值也是运算,也有结果。

  • a=6的结果是被赋予的值,也就是6。

  • a=b=6 a=(b=6)。

 

交换变量

#include<stdio.h>
int main()
{
   int a=5;
   int b=6;
   int c;
   c=a;
   a=b;
   b=c;
   printf("a=%d,b=%d\n",a,b);
   return 0;
   
}
  • 程序是按步执行的

  • 程序表达的是顺序执行的动作,而不是关系。

  • a=b;

  • b=a;

  • 是依次执行的,结果使得a和b都是b原来的值。

 

复合赋值

  • + - * / %,可与赋值运算符"="结合,形成复合运算符。

  • total+=5;

  • total=total+5;

  • 注意两个运算符中间不要有空格。

递增递减运算符

  • "++"和"--"是单目运算符,算子必须是变量。作用是给变量+1或者-1.

  • count++;

  • count+=1;

  • count=count+1;

前缀后缀

  • ++和--可以放在变量的前面或者后面。

  • a++的值是a加1以前的值,而++a的值是加了1以后的值,无论哪个,a自身的值都加了1。

 

#include<stdio.h>
int main()
{
   int a=10;
   printf("a++=%d\n",a++);
   printf("a=%d\n",a);
   
   printf("++a=%d\n",++a);
   printf("a=%d\n",a);
   
   return 0;
   
}
表达式运算表达式的值
count++ 给count的值加1 count原来的值
++count 给count的值加1 count+1后的值
count-- 给count减1 count原来的值
--count 给count减1 count减1后的值

逆序数

#include<stdio.h>
int main()
{
int a=0;
int b=0;
int c=0;
int t=0;
printf("请输入一个正3位数。\n");
scanf("%d",&t);
a=t/100;
c=t%10;
b=(t%100) /10;
printf("这个数的逆序数是%d\n",c*100+b*10+a);
return 0;
}

 

 

 

 

 

 

 

 

posted @ 2021-03-08 00:29  大美China  阅读(52)  评论(0)    收藏  举报