鱼C论坛

 找回密码
 立即注册
查看: 2395|回复: 0

[技术交流] 《带你学C带你飞》S1E5学习笔记

[复制链接]
发表于 2017-7-11 15:06:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 hxliu 于 2017-7-11 15:06 编辑

S1E5

1、C语言中常见的常量有:整型常量、实型常量、字符常量(普通字符和转义字符)、字符串常量、符号常量(需要定义)。

2、定义符号常量(宏定义)格式:#define 标识符 常量
   tips:“#”开头的为预处理命令。#define为宏定义命令。
以鱼C工作室为例
  1. #include <stdio.h>

  2. #define URL "http://www.fishc.com"
  3. #define NAME "鱼C工作室"
  4. #define BOSS "小甲鱼"
  5. #define YEAR 2010
  6. #define MONTH 5
  7. #define DAY 20

  8. int main()
  9. {
  10.         printf("%s成立于%d年%d月%d日\n",NAME,YEAR,MONTH,DAY);
  11.         printf("%s是%s创立的。\n",NAME,BOSS);
  12.         printf("%s的域名是:%s\n",NAME,URL);
  13.        
  14.         return 0;
  15. }
复制代码


3、C语言中的名字都称之为标识符。(如:符号常量名、变量名、函数、数组、自定义类型等名字)

4、使用空字符‘\0’表示字符串结束位置。

5、字符串"FishC"除了'F'、'i'、's'、'h'、'C',五个字符外还有一个'\0’表示结束。

6、宏定义是在程序编译时先进行的预处理,做法是直接将标识符替换成常量,并不进行相关运算。
  
  1. #define F(n) 2*n
复制代码

此题F(3+2)直接替换为2*3+2,因此结果为8

做作业时遇到的问题:
双引号"\n",转换字符用了s
  1. #include <stdio.h>

  2. #define NL "\n"

  3. int main()
  4. {
  5.         printf("Line1%s", NL);
  6.         printf("Line2%s", NL);

  7.         return 0;
  8. }
复制代码


规范的应该是单引号'\n'(双引号的话把换行符当字符串定义了0.0,所以用s的时候结果一样),转换字符用c
  1. #include <stdio.h>

  2. #define NL '\n'

  3. int main()
  4. {
  5.         printf("Line1%c",NL);
  6.         printf("Line2%c",NL);
  7.                
  8.         return 0;
  9. }
复制代码


另附作业代码:
①圆
  1. #include <stdio.h>

  2. #define PI 3.14159
  3. #define S(r) PI*r*r
  4. #define C(r) 2*PI*r

  5. int main()
  6. {
  7.         int r = 5;
  8.        
  9.         printf("半径为%d的圆,面积是:%.2f,周长是:%.2f",r,S(r),C(r));
  10.        
  11.         return 0;
  12. }
复制代码


②买菜(为什么小甲鱼买那么多黄瓜萝卜。。。手动滑稽)
  1. #include <stdio.h>

  2. #define FQ 3.7
  3. #define JL 7
  4. #define XQ 1.3
  5. #define KXC 8
  6. #define YCo 2.4
  7. #define YCh 9
  8. #define HG 6.3
  9. #define BLB 0.5
  10. #define XM 1*FQ+0.5*KXC+0.5*YCh
  11. #define XH 1.5*XQ+0.25*YCo+2.5*HG
  12. #define FishC 5*HG+10*BLB

  13. int main()
  14. {
  15.         printf("小明需要支付%.2f元\n",XM);
  16.         printf("小红需要支付%.2f元\n",XH);
  17.         printf("小甲鱼需要支付%.2f元\n",FishC);
  18.        
  19.         return 0;
  20. }
复制代码


写完后发现小甲鱼版买菜不一样啊,用了float函数啊啊啊(如下),待会认真看看~
  1. #include <stdio.h>

  2. #define FANQIE  3.7
  3. #define JIELAN  7
  4. #define XIQIN   1.3
  5. #define KONGXINCAI      8
  6. #define YANGCONG        2.4
  7. #define YOUCAI  9
  8. #define HUANGGUA        6.3
  9. #define BAILUOBO        0.5

  10. int main()
  11. {
  12.         float price;

  13.         price = (2 * FANQIE + KONGXINCAI + YOUCAI) * 0.5; // 1斤 == 0.5公斤
  14.         printf("小明需要支付%.2f元\n", price);

  15.         price = (3 * XIQIN + 0.5 * YANGCONG + 5 * HUANGGUA) * 0.5;
  16.         printf("小红需要支付%.2f元\n", price);

  17.         price = (10 * HUANGGUA + 20 * BAILUOBO) * 0.5;
  18.         printf("小甲鱼需要支付%.2f元\n", price);

  19.         return 0;
  20. }
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
小甲鱼 + 5 + 5 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 15:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表