hxliu 发表于 2017-7-11 15:06:44

《带你学C带你飞》S1E5学习笔记

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

S1E5

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

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

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

int main()
{
        printf("%s成立于%d年%d月%d日\n",NAME,YEAR,MONTH,DAY);
        printf("%s是%s创立的。\n",NAME,BOSS);
        printf("%s的域名是:%s\n",NAME,URL);
       
        return 0;
}

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

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

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

6、宏定义是在程序编译时先进行的预处理,做法是直接将标识符替换成常量,并不进行相关运算。
   #define F(n) 2*n
此题F(3+2)直接替换为2*3+2,因此结果为8

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

#define NL "\n"

int main()
{
      printf("Line1%s", NL);
      printf("Line2%s", NL);

      return 0;
}

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

#define NL '\n'

int main()
{
        printf("Line1%c",NL);
        printf("Line2%c",NL);
               
        return 0;
}

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

#define PI 3.14159
#define S(r) PI*r*r
#define C(r) 2*PI*r

int main()
{
        int r = 5;
       
        printf("半径为%d的圆,面积是:%.2f,周长是:%.2f",r,S(r),C(r));
       
        return 0;
}

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

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

int main()
{
        printf("小明需要支付%.2f元\n",XM);
        printf("小红需要支付%.2f元\n",XH);
        printf("小甲鱼需要支付%.2f元\n",FishC);
       
        return 0;
}

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

#define FANQIE3.7
#define JIELAN7
#define XIQIN   1.3
#define KONGXINCAI      8
#define YANGCONG      2.4
#define YOUCAI9
#define HUANGGUA      6.3
#define BAILUOBO      0.5

int main()
{
      float price;

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

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

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

      return 0;
}

页: [1]
查看完整版本: 《带你学C带你飞》S1E5学习笔记