#pragma mark 0_17 变量的命名规则以及规范 [掌握]
1.变量的命名规则
1>变量名只能由任意的字母,下划线和$以及数字组成,注意不能用数字开头 ******
2>是区分大小写的
3>变量一定要先定义再使用
4>同一个大括号中不能定义名字相同的变量
5>不能和C的关键字同名 *************
3.命名规范(大家都遵守所以你最好也遵守)
1>有意义 可以见闻知意 ************
2>驼峰命名法,如果一个变量的名字以多个单词组成,以第一个单词首字符小写,其他每个单词首字母大写 ***********
#pragma mark 0_18 printf函数的使用补充 [开发中常用!!!]
%0md m是1个整数,不足的地方就会以0补齐.
%.nf n是1个数字.代表要输出小数点后面多少位.
#pragma mark - 01 数据类型转换 [掌握]
"强调
1.当赋值符号两边的数据类型不同的时候,数据类型转换是自动的,不需要程序员插手
2.思考:下面会发生类型转换吗?
float numF = 1.123;
float numF = 1.123f;
3.
//注意:下面写法取整数部分
char char_a = 97.1234;
#pragma mark - 04 scanf练习 [掌握]
询问用户你今年多大了.
输出1一句话 "这么巧啊.我今年也是xx岁."
#pragma mark - 05 使用scanf函数需要注意的细节 [掌握]
1). 变量的命名要符合规范. ***************
2). 注释要有 可以帮助你理清思路.
3). scanf函数不是printf函数所以后面不要加\n换行. ******************
4). scanf函数后面要写上变量的地址 而不是写变量. ******************
使用&就可以取变量的地址.
5). 如果之前的程序正在运行 没有结束 新运行程序之前 要把旧程序停掉.
6). 占位符要和后面的变量的类型对应.否则就会出现意想不到的情况. *************
#pragma mark - 06 使用scanf函数一次接收输入多个数据 [掌握]
1. 用户在输入多个数据的时候.默认的分隔符号是空格或者回车.
2.自定义分隔符:
在格式控制字符串中可以自定义多个输入数据的分隔符.
scanf("%d-%d-%f",&num,&boyNum,&avg);
代表输入3个数据 这3个数据使用-分开.
注意:
1). 一旦指定了分隔符 那么就必须使用指定的分隔符了 空格和回车就无法使用了.
2). 如果使用scanf函数一次输入多个数据,只能是数(整型和浮点型) 如果有char混合输入 就会出问题.
#pragma mark - 07 scanf函数的缓冲区 [听懂]
#warning 此知识点听不懂就算了 反正开发ios是用不到的
"强调
1.当控制台停下来等待你输入,说明缓冲区是空的
2.你输入的所有数据都会存储到缓冲区,然后程序从缓冲区拿数据向变量赋值
3.只要缓冲区有数据,程序再遇到scanf语句,就不会在控制台等待你输入
4.程序从缓冲区拿数据,如果是给浮点数或者整数赋值,忽略空格/tab/回车,给字符赋值,不会忽略任何数据.
解决方案: 在输入字符之前,将缓冲区中的数据全部清空.
rewind(stdin);
综合例子1:
//输入 1空格2空格3回车 结果是什么?为什么?
int main()
{
int num1=0,num2=0,num3=0;
scanf("%d%d",&num1,&num2);
printf("----------------\n");
scanf("%d",&num3);
printf("%d---%d---%d\n",num1,num2,num3);
return 0;
}
综合例子2:
//出什么问题,怎么解决?
int main()
{
int num1=1;
char num_c = 'a';
scanf("%d",&num1);
rewind(stdin);
scanf("%c",&num_c);
printf("%d----%c---\n",num1,num_c);
}
#pragma mark -08 交换两个变量的值 [掌握]
1.第一种方式:第三方变量 ****************
int num1 = 100;
int num2 = 200;
int temp = num1;
num1 = num2;
num2 = temp;
2.第二种方式:两数相加再相减
int num1 = 100;
int num2 = 200;
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
//记忆口诀 121加减减
3.练习:请用户输入两个数,交换,并打印结果
//思路
int main()
{
//1.定义两个变量用于接受用户输入的数,并交换
//1.1定义变量
int num_1,num_2;
//1.2提示用户输入
printf("亲,请输入两个整数用于交换,用^_^隔开!!!!\n");
//1.3接收用户输入
scanf("%d^_^%d",&num_1,&num_2);
//2.需要一个第三方变量来协助我交换
printf("交换前%d^^^^^^^^%d\n",num_1,num_2);
int num_temp;
num_temp = num_1;
num_1 = num_2;
num_2 = num_temp;
printf("交换后%d^^^^^^^^%d\n",num_1,num_2);
return 0;
}
#pragma mark -09 算术运算符和算术表达式简要介绍 [掌握]
"强调
取余数 % 5%2 = 1
#pragma mark -10 算术表达式 [掌握]
"强调
1.算数表达式的值有没有类型?
有,算数表达式最终结果类型,取决于精度最高的那个数
精度 ---> 浮点数 > 整数 ----> double > float > int
float result = 10 + 1.1f;
double result2 = 1.2 + 1.2f;
2.当参与运算的数据类型一致,算数运算表达式的结果的类型就是参与运算的数据的类型
分析下面代码段的运行结果
1>
int main()
{
int result = 1/3;
/*
先计算真实结果-->0.333333333-->由于参与运算的数都是整型,只取结果的整数部分
*/
printf("%d\n",result);
return 0;
}
2>
int main()
{
double result = 1/3;
/*先计算真实结果-->0.333333333-->由于参与运算的数都是整型,只取结果的整数部分0,然后,由于是给一个double类型的变量赋值,所以又会把 0 ---> 0.000000
*/
printf("%lf\n",result);
return 0;
}
3.如何获取两个整数的真实的商
//思路
int main()
{
double result = (1*1.0)/3;
/*
---->double 1.0 / int 3---> double 1.0 / double 3.0 --->double 0.3333333
*/
printf("%lf\n",result);
return 0;
}
4.注意
a. 求模运算.实型数据无法参与求模运算,因为没有意义.
b. m % n 的结果一定是在 0 --- (n - 1 )之间的.
#pragma mark -11 案例讲解 [掌握]
某超市衣服120.88一件. 裤子89.9一条.
让顾客输入自己买的衣服数量和裤子数量.
1). 显示他应该付款多少钱.
2). 如果商家打88折 再显示打折以后应该付款多少钱.
int main()
{
//1. 声明两个变量保存衣服的单价和裤子的单价.
double kuZiPrice = 89.9;
double yiFuPrice = 120.88;
//2. 声明两个变量保存衣服和裤子的数量
int kuZiCount = 0;
int yiFuCount = 0;
//3. 让用户输入裤子和衣服的数量.
printf("请输入裤子和衣服的数量使用空格分隔: ");
scanf("%d%d",&kuZiCount,&yiFuCount);
//4. 计算总价.
// 衣服的单价 * 衣服的数量 + 裤子的单价 * 裤子数量.
double money = yiFuPrice * yiFuCount + kuZiPrice * kuZiCount;
//5. 计算折扣价.
double youHui = money * 0.88;
//6. 输出.
printf("总价格为:%.2lf,优惠价格为:%.2lf\n",money,youHui);
}
#pragma mark -12 算术运算符的优先级和char数据参与算术运算 [掌握]
1 + 2- 5%4 + 3/1;
/*
// * / % 的优先级 是比 + - 的优先级 高
//先算 * / %
1 + 2 - 5%4 + 3/1;
1 + 2 - 1 + 3
//计算 + -
5
*/
"强调
1.char变量/常量和整数一起运算直接计算拿ASCII码
int sum = 'a' + 3;
char char_b = 'b';
sum = 2 + char_b;
2.如何把小写的字母转化为大写
char char_xiao = 'a' -32;
#pragma mark -13 复合赋值运算符 [掌握]
1.是什么
把一个变量在自身的基础之上进行变化
2.怎么用
int main()
{
int num = 1;
num = num + 1;
等价写法 num += 1;
}
3.常见的复合赋值运算
int num = 10;
+= 比如: num += 10; --->等价于 num = num + 10;
-= 比如: num -= 10; --->等价于 num = num - 10;
/= 比如: num /= 10; --->等价于 num = num / 10;
%= 比如: num %= 10; --->等价于 num = num % 10;
4.练习
int main()
{
int num = 111;
num %= 2;
printf("%d\n",num);
}
|
|