程序的执行
解释:借助一个程序,那个程序能试图理解你的程序,然后按照你的要求执行
编译:借助一个程序,就像一个翻译,把你的程序翻译成计算机真正能懂的语言——机器语言——写的程序,然后,这个机器语言写的程序就能直接执行了
C程序框架:
#include <stdio.h>
int main(int argc, char **argv) {
return 0;
}
辗转相除法:
#include<stdio.h>
int main() {
/*int u = 32;
int v = 26;*/
int u, v;
scanf("%d%d", &u, &v);
while (v != 0) {
int temp = u % v;
u = v;
v = temp;
}
printf("%d", u);
return 0;
}
2.1.2变量定义
#include <stdio.h>
int main() {
int price = 0; //定义了一个变量。变量名是price,类型是int,初值是0.
//变量是一个保存数据的地方.
//需要在程序中保存数据时,比如上面的例子要记录用户输入的价格,就需要一个变量来保存它.
//用一个变量保存了数据,它才能参加后面的找零计算.
//变量定义的一般形式:
// <类型名称><变量名称>;
// int price;
// int amount;
// int price,amount;
//变量的名字:
// 变量需要一个名字,变量的名字是一种“标识符”,意思是它是用来标识这个与那个的不同名字.
/* 标识符有标识符的构造规则.基本原则是:标识符只能由字母、数字、下划线组
成,数字不能出现在第一个位置.C语言的关键字(也叫保留字)不能做标识符.
*/
printf("请输入金额(元):");
scanf("%d", &price);
int change = 100 - price;
printf("找您%d元。\n", change);
return 0;
}
2.1.3变量赋值与初始化
#include <stdio.h>
int main()
{
int price = 0; //price = 0是一个式子,“= ”是一个赋值运算,表示将=右边的值赋给左边的变量.
//赋值:在程序设计中,a=b表示要求计算机做一个动作:将b的值赋给a.关系是静态的,
// 而动作是动态的.在数学中a=b等价于b=a,在程序设计中二者意思完全相反.
//初始化:当赋值发生在定义变量时,就像 price = 0,就是变量的初始化.所有的变量
// 在第一次使用(出现在赋值运算符的右边)之前应该赋值一次.
printf("请输入金额(元):");
scanf("%d", &price); //读整数
int change = 100 - price;
printf("找您%d元。\n", change);
return 0;
}
2.1.4变量输入
#include <studio.h>
int main()
{
int price = 0;
printf("请输入金额(元):");
scanf("%d", &price); //读整数:要求scanf这个函数读入下一个整数,读到的结果是赋值给变量price
//小心price前面的&
int change = 100 - price;
printf("找您%d元. \n", change);
return 0;
}
2.1.5常量与变量
#include <stdio.h>
int main()
{
//const int Amount = 100;
//const是一个修饰符,加在int前面,用来给这个变量加上一个const(不变的)的属性。
//这个const的属性表示这个变量的值一旦初始化,就不能再修改了。
//用const了,Amount应该大写
int amount = 100;
int price = 0;
printf("请输入金额(元):");
scanf("%d", &price);
//int change = 100 - price; //固定不变的数,是常数。直接写在程序里,称为直接量(literal)
int change = amount - price; //更好的方式是,定义一个常量:const int AMOUNT = 100;
printf("找您%d元。\n", change);
return 0;
}
#include <stdio.h>
int main() {
int a;
int b;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
printf("%d + %d = %d\n", a, b, a + b);
return 0;
}
2.1.6浮点数
单位换算:
#include<stdio.h>
//两个整数运算结果只能是整数。10和10.0在C中是完全不同的数。10.0是浮点数。
//浮点数:带小数点的数值
//double:双精度浮点数
/*数据类型
整型:
int
printf("%d", ...);
scanf("%d", ...);
小数:
double
printf("%f", ...);
scanf("%lf", ...);
*/
int main()
{
printf("请分别输入身高的英尺和英寸,"
"如输入\"5 7\"表示5英尺7英寸:");
double foot;
double inch;
scanf("%lf %lf", &foot, &inch);
printf("身高是%f米. \n",
((foot + inch / 12) * 0.3048));
return 0;
}
2.2.1表达式
#include <stdio.h>
//一个表达式是一系列运算符(operator)和算子(operand)的组合,用来计算一个值
/*计算时间差
hourl * 60 + minuterl : 转换为分钟为单位
t / 60 : 小时部分
t % 60 :分钟
*/
int main() {
int hour1, minuter1;
int hour2, minuter2;
scanf("%d %d", &hour1, &minuter1);
scanf("%d %d", &hour2, &minuter2);
int t1 = hour1 * 60 + minuter1;
int t2 = hour2 * 60 + minuter2;
int t = t2 - t1;
printf("时间差为 % d小时 % d分", t / 60, t % 60);
}
2.2.2运算符优先级
#include <stdio.h>
//求两数平均值
int main() {
int a, b;
scanf("%d %d", &a, &b);
double c = (a + b) / 2.0;
ptintf("%d和%d的平均值 = %f\n", a, b, c);
return 0;
}
2.2.3交换变量
法一:临时变量
法二:不用临时变量
2.2.4复合赋值与递增递减
1.复合赋值
5个算术运算符, + -*/ % ,可以和赋值运算符“ = ”结合起来,形成复合赋值运算符:“ += ”、“ -= ”、“ *= ”、“ /= ”和“ %= ”
total += 5;
total = total + 5;
注意两个运算符中间不要有空格
代码:
#include <stdio.h>
int main() {
int a = 10;
printf("++a = %d\n", ++a);
printf("a = %d\n", a);
printf("a++ = %d\n", a++);
printf("a = %d\n", a);
return 0;
}
输出: