集成开发环境(IDE)windows
下载Dev C++的地方是:
http://sourceforge.net/projects/orwelldevcpp/?source=directory
提示:Dev C++只能在windows操做系统下安装框架
因为作c语言的编译软件的厂家不少,不一样的厂家又有不一样的方言。
所以咱们统一用Dev C++软件(集成开发环境),在上面的地址下载默认安装便可。编辑器
提示:Dev C+= 是一款集成开发环境的软件,包括编辑器、编译器、调试器和图形用户界面等功能。函数
程序框架测试
#include <stdio.h> int main(){ //你的代码 return 0; }
输出操作系统
第一个Hello World
程序.net
#include <stdio.h> int main(){ printf("Hello World!\n"); return 0; }
执行结果:设计
Hello World!
程序语句及符号3d
如何输入
变量赋值和初始化
"="
是一个赋值运算符,表示将"="
右边的值赋给左边的变量。变量定义
变量的名字
“标识符”
,意思是它是用来识别这个和那个的不一样的名字。赋值运算符"="
和数学的'"="'差别
初始化
变量初始化
变量类型
ANSI C
标准和C99
标准的定义变量的区别
ANSI C
只能在代码开头的地方定义变量。C99
在使用变量前定义变量便可。读取整数
常量
C99
找零程序
假设有一个杂货铺,顾客有一张面额100的钞票,要求设计一个程序给店主,输入购买商品的总额并,而且计算出应该找零给顾客多少钱。
(假设金额都为整数且商品总额小于100)
#include <stdio.h> int main(int argc, char *argv[]) { const int AMOUNT = 100; int change = 0; int price = 0; printf("请输入金额(元):"); scanf("%d",&price); change = AMOUNT - price; printf("找您%d元。\n",change); return change; }
执行结果:
请输入金额(元):98 找您2元。
附录:C语言常见的保留字
auto,break,case,char,const, continue,default,do,double, else,enum,extern,float,for, goto,if,int,long,register,return, short,signed,sizeof,static, struct,switch,typedef,union, unsigned,void,volatile,while, inline,restrict
整数之间的运算
10/3
在c语言中的运行结果为3
,c语言会自动抹掉小数后的部分(.3333...
)。10
和10.0
在C中是彻底不一样的数10.0
是浮点数,10
是整数浮点数
double
“双精度浮点数”
的第一个单词,人们用来表示浮点数类型。整数和小数的输入输出
身高转换程序
设计一个程序将英尺和英寸表达的升高转换为米表达,例如5英尺7英寸表示1.701800
米。
#include <stdio.h> int main(int argc, char *argv[]) { printf("请分别输入身高的英尺和英寸," "如输入\"5 7\"表示5英尺7英寸:"); double foot = 0; double inch = 0; scanf("%lf %lf",&foot,&inch); printf("身高是%f米。\n",((foot + inch / 12) * 0.3048)); return 0; }
执行结果:
请分别输入身高的英尺和英寸,如输入"5 7"表示5英尺7英寸:5 7 身高是1.701800米。
表达式
"+"
,减法运算符"-"
时间差计算程序
#include <stdio.h> // 计算第一个时间段和第二个时间以前的时间差,例如3点10分和1点30分 的时间差为1个小时40分钟 int main(int argc, char *argv[]) { int hour1, minute1; int hour2, minute2; printf("请输入第一个时间,分别输入小时和分钟." "输入\"3 10\"表示3点10分:"); scanf("%d %d", &hour1, &minute1); printf("请输入第二个时间,分别输入小时和分钟." "输入\"1 30\"表示1点30分:"); scanf("%d %d", &hour2, &minute2); int t1 = hour1 * 60 + minute1; int t2 = hour2 * 60 + minute2; int t= t1 - t2; printf("时间差是%d小时%d分。",t / 60, t % 60); return 0; }
执行结果:
请输入第一个时间,分别输入小时和分钟.输入"3 10"表示3点10分:3 10 请输入第二个时间,分别输入小时和分钟.输入"1 30"表示1点30分:1 30 时间差是1小时40分。
算术符优先级
赋值运算符
嵌入式赋值
int a = 6;
int b;
int c = 1 + (b = a);
不建议使用嵌入式赋值,由于嵌入式赋值有如下两个缺点:
- 不利于阅读
- 容易产生错误
结合关系
"+"
、"-"
和赋值"="
自右向左题目内容:
程序每次读入一个正三位数,而后输出逆序的数字。注意,当输入的数字含有结尾的 0 时,
输出不该带有前导的 0。好比输入 700,输出应该是 7。
输入格式:
每一个测试是一个 3 位的正整数。
输出格式:
输出逆序的数。
输入样例:
123
输出样例:
321
解题思路:
进一步分析,步骤三还须要作拆分。咱们知道一个三位数由个位、十位和百位组成,所以咱们须要作的就是将A的百位放到B的个位再将A的个位放到B的百位,最后获得的就是A的倒序的一个三位数了,列如123
将百位和十位互调的结果就是321
。
3.将变量A逆序放入变量B
3.1 取A的百位放到B的个位。
3.2 取A的十位放到B的十位。
3.3 取A的个位放到B的百位。
反转数字
#include <stdio.h> int main(int argc, char *argv[]) { int a; int b; printf("请输入一个三位的整数:"); scanf("%d",&a); // 个位 + 十位 + 百位 b = a / 100 + a % 100 / 10 * 10 + a % 10 * 100; printf("%d\n",b); return 0; }
执行结果:
请输入一个三位的整数:123 321
扩展思考:到这里咱们的程序算是符号题目要求了,但它还不是一个健壮的、好的程序。试想当用户输入的不是整数而是小数结果会怎么样呢? 又或者用户输入的根本就不是数字呢? 而且咱们的程序只能反转三位数,如何反转四位数、五位数甚至n位数呢?
讨论题
标题:很差的表达式
内容:
看看如何分析这个表达式:
a=5;
b=0;
c = (b=a+2) - (a=2);
看看这个表达式的结果,会使得 c 是什么?为何说这是个很差的表达式?
题目分析:
单目和赋值运算符自右向左,加、减、乘、除和取余运算符自左向右。
所以c = (b=a+2) - (a=2)
表达式的计算顺序为:
为何说嵌套赋值是不要的表达式呢?
咱们能够试着把以上表达式拆分红下面的表达式。
a = 5; b = a + 2; a = 2; c = b - a;
这样是否是一目了然了呢?