一、变量的名字
·变量的名字是一种标识符
·标识符的构造原则:只能由字母、数字、下划线组成,数字不可以出现第一个位置。C语言的关键字(保留字)不能用作标识符
#include<stdio.h>
int main(){
printf("请输入商品价格\n");
int price=0;
scanf("%d",&price);
int change=100-price;
printf("应找零%d元。\n",change);
return 0;
}
二、关于scanf
#include<stdio.h>
int main(){
int a=0,b=0;
scanf("%d %d",&a,&b);
printf("%d %d\n",a,b);
return 0;
}
引号里有什么就要输入什么,如第二个%d后面有个空格或者\n的话,那么输入b后需要随便输入一个字符填充那个空格,才可以继续运行。
三、const
const是一个修饰符,加在变量类型前面
四、浮点数
整数运算的结果只有整数部分,不然就要用浮点数。
当浮点数和整数放到一起运算时,C会将整数转换成浮点数,然后进行浮点数的运算。结果就是一个浮点数。
方法一:将12改为12.0
#include<stdio.h>
int main(){
printf("请输入身高的英尺和尺寸\n");
int foot;
int inch;
scanf("%d %d",&foot,&inch);
printf("身高是%f。\n",((foot+inch/12.0)*0.3048));
return 0;
}
方法二:将foot和inch类型改为double。注意输入是%lf,输出是%f。
printf("请输入身高的英尺和尺寸\n");
double foot;
double inch;
scanf("%lf %lf",&foot,&inch);
printf("身高是%f。\n",((foot+inch/12)*0.3048));
return 0;
数据类型
整数
int
printf("%d",...);
scanf("%d",...);
带小数点的数
double
printf("%f",...);
scanf("%lf",...);
五、计算时间差
int hour1,min1,hour2,min2;
printf("请输入两个时间\n");
scanf("%d%d%d%d",&hour1,&min1,&hour2,&min2);
int t1=hour1*60+min1;
int t2=hour2*60+min2;
int t=t2-t1;
if(t<0)
{
t=-t;
}
printf("时间差是%d时%d分\n",t/60,t%60);
return 0;
六、求两个整数的平均值
int a,b;
scanf("%d%d",&a,&b);
double c=(a+b)/2.0;
printf("整数%d和%d的平均值是%f",a,b,c);
七、运算符的优先级
赋值:a=b=6 ——>a=(b=6)
八、复合赋值
五个算术运算符,+-*/%,可以和赋值运算符“=”结合起来形成复合赋值运算符:“+=”,“-=”,“*=”,“/=”,“%=”。
九、递增递减运算符“++”,“--”
count++
count += 1;
count =count+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",a);
return 0;
}
#include<stdio.h>
int main(){
int a=0;
printf("请输入一个三位数\n");
scanf("%d",&a);
int b=a%10;
a/=10;
int c=a%10;
int d=a/10;
printf("%d",b*100+c*10+d);
return 0;
}
十一、关系运算符,计算两个值之间的关系,关系运算的结果只有两个值:0(关系成立)或1(关系不成立)
printf("%d\n",5>=3);
printf("%d",5==3);
优先级
1、所有关系运算符比算术运算符的优先级低,比赋值运算符的高。
printf("%d\n",7>=3+4);
int inc=5<3;
printf("%d",inc);
2、==和!=的优先级比其他的低,而连续的关系运算是从左往右
5>3 == 4<7
6>4>2
a==b==6
a==b>0
十二、if-else
如果if,else后面没有大括号,那么其后只有第一句 “;” 是有效的。反之就能执行多个语句。
十三、判断位数
// 方法1
int main(){
int a=0,n=0;
printf("请输入一个不超过四位数\n");
scanf("%d",&a);
// if(a>999)
// {
// n=4;
// }else if(a>99)
// {
// n=3;
// }else if(a>9)
// {
// n=2;
// }else{
// n=1;
// }
if(a<9){
n=1;
}else if(a<99){
n=2;
}else if(a<999){
n=3;
}else{
n=4;
}
printf("a是一个%d位数。\n",n);
return 0;
}
//方法2
#include<stdio.h>
int main(){
int a=0,n=0;
printf("请输入一个不超过四位数\n");
scanf("%d",&a);
if(a>0){
while(a>0){
n++;
a/=10;
}
}else{
n=1;
}
printf("a是一个%d位数。\n",n);
return 0;
}
//方法3
#include<stdio.h>
int main(){
int a=0,n=0;
printf("请输入一个不超过四位数\n");
scanf("%d",&a);
do{
a/=10;
n++;
}while(a>0);
printf("a是一个%d位数。\n",n);
return 0;
}