鱼C论坛

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

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

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

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

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

x
本帖最后由 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 FANQIE  3.7
#define JIELAN  7
#define XIQIN   1.3
#define KONGXINCAI      8
#define YANGCONG        2.4
#define YOUCAI  9
#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荣誉 +5 鱼币 +5 收起 理由
小甲鱼 + 5 + 5 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 17:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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