(1).代码清单
①读取两个整数的值,然后显示它们的和、差、积、商、余数
#includeint main() { int vx, vy; puts("请输入两个整数"); printf("第一个整数:"); scanf("%d", &vx); printf("第二个整数:"); scanf("%d", &vy); printf("它们的和是:%dn", vx + vy); printf("它们的差是:%dn", vx - vy); printf("它们的积是:%dn", vx * vy); printf("它们的商是:%dn", vx / vy); printf("它们的余是:%dn", vx % vy); return 0; }
“%” 是求余运算符号
“/”是取商的整数部分
②显示读取出的整数的最后一位数字
#includeint main() { int n1; printf("请输入一个整数:"); scanf("%d", &n1); printf("最后一位是:%d", n1 % 10); return 0; }
③读取两个整数,显示它们的商和余数
#includeint main() { int n1, n2; puts("请输入两个整数"); printf("第一个整数:"); scanf("%d", &n1); printf("第二个整数:"); scanf("%d", &n2); printf("它们的商是:%d它们的余是:%d", n1 / n2, n1 % n2); return 0; }
两个转换说明分别对应左边的第一个参数和第二个参数
④对读取的整数值进行符号取反操作,并输出结果
#includeint main() { int n1; printf("请输入一个正整数"); scanf("%d", &n1); printf("它的取反结果是:%d", -n1); return 0; }
(2).本章习题
①编译一段程序,像下面那样读取两个整数,然后显示出前者是后者的百分之几
#includeint main() { int n1, n2, n3; puts("请输入两个整数:"); printf("请输入第一个整数A:"); scanf("%d", &n1); printf("请输入第二个整数B:"); scanf("%d", &n2); n3 = (n1 * 100) / n2; printf("前者是后者的%d %%", n3); return 0; }
不想使用转换功能,只想输出%时,必须写成%%
当使用不具有转换功能的puts函数是,就不能写成%%
前者是后者的百分之几:(前者*100)/ 后者
运算时先计算()内的内容
②编写一段程序,像下面那样读取两个整数,然后输出它们的和以及积
请输入两个整数。
整数A:
整数B:
它们的和是?,积是?
#include2.数据类型int main() { int a, b; puts("请输入两个整数"); printf("第一个整数A:"), scanf("%d", &a); printf("第二个整数B:"), scanf("%d", &b); printf("它们的和是%d,积是%d", a + b, a * b); return 0; }
(1).代码清单
①读取两个整数,显示出它们的平均值
#includeint main() { int a, b; printf("第一个整数:"); scanf("%d", &a); printf("第二个整数:"); scanf("%d", &b); printf("它们的平均值是:%d", (a + b) / 2); return 0; }
将表达式a+b括起来的(),是优先运算的标记。
②整数和浮点数的区别
#includeint main() { int n1; double n2; n1 = 9.99; n2 = 9.99; printf("int变量的值是:%dn", n1); printf("n1/2的值是:%dn", n1/2); printf("double 变量的值是:%fn", n2); printf("n2/2的值是:%fn", n2/2); return 0; }
int 变量是整数型 double变量是浮点型
printf函数输出double型值的时候,不能使用“%d” 要用“%f”
③读取两个实数值,用实数表示它们的和、差、积、商
#includeint main() { double vx, vy; puts("请输入两个实数值"); printf("实数1:"); scanf("%lf",&vx ); printf("实数2:"); scanf("%lf", &vy ); printf("它们的和是:%f", vx + vy); printf("它们的差是:%f", vx - vy); printf("它们的积是:%f", vx * vy); printf("它们的商是:%f", vx / vy); return 0; }
double变量通过scanf函数赋值时需要使用格式字符串“&lf”
int 类型 printf(“%d”,no) scanf(“%d”,&no)
double 类型 printf (“%f”,no) scanf(“%lf”,&no)
④验证数据类型和运算
#includeint main() { int n1, n2, n3, n4; double d1, d2, d3, d4; n1 = 5 / 2; n2 = 5.0 / 2.0; n3 = 5.0 / 2; n4 = 5 / 2.0; d1 = 5 / 2; d2 = 5.0 / 2.0; d3 = 5.0 / 2; d4 = 5 / 2.0; printf("n1=%dn", n1); printf("n2=%dn", n2); printf("n3=%dn", n3); printf("n4=%dn", n4); printf("d1=%fn", d1); printf("d2=%fn", d2); printf("d3=%fn", d3); printf("d4=%fn", d4); return 0; }
int / int 与 double / double 运算结果类型一样
int / double这种运算情况下,int会进行隐式转换,自动转换为double类型
⑤读取三个整数,并显示他们的合计值和平均值
#includeint main() { int a, b, c; int sum; double ave; puts("请输入三个整数"); printf("整数1:"); scanf("%d", &a); printf("整数2:"); scanf("%d", &b ); printf("整数3:"); scanf("%d", &c ); sum = a + b + c; ave = (double)(a + b + c) / 3; printf("它们的和是:%5dn", sum); printf("它们的平均值是:%5.1fn", ave); return 0; }
%5d…显示至少5位的十进制整数
%5.1f…显示至少5位的浮点数。但是小数点后只显示一位
⑥格式化整数和浮点数并显示
#includeint main() { printf("[%d]n", 123); printf("[%.4d]n", 123); printf("[%4d]n", 123); printf("[%04d]n", 123); printf("[%-4d]n", 123); printf("[%d]n", 12345); printf("[%.3d]n", 12345); printf("[%3d]n", 12345); printf("[%03d]n", 12345); printf("[%-3d]n", 12345); printf("[%f]n", 123.13); printf("[%.1f]n", 123.13); printf("[%6.1f]nn", 123.13); printf("[%f]n", 123.13); printf("[%.1f]n", 123.13); printf("[%4.1f]nn", 123.13); return 0; }
效果图:
设置了0标志之后,如果数值前面有空余位用0补齐位数,如果省略了0标志,则用空白补齐
最小字段宽数就是最少要显示的字符位数。不设定改位数后者显示数值的实际位数超过它的时候,也会更具数值显示出必要的位数。如果设置了”-“
则会左对齐显示否则会右对齐显示
(2).本章习题
①编写一段程序,像右面那样显示读取的实数值
请输入一个实数:
你输入的是:
#includeint main() { double a; puts("请输入一个数值"); scanf("%lf", &a); printf("你输入的是:%f", a); return 0; }
②编写一段程序,读取两个整数并显示前者是后者的百分之几
#includeint main() { int a, b; double c; puts("请输入两个整数:"); printf("第一个整数A:"); scanf("%d", &a); printf("第二个整数B:"); scanf("%d", &b); printf("A是B的%f%%", (double)(a*100)/b); return 0; }
通常 (数据类型)表达式 的形式会把表达式的值自动转换为该数据类型对应的值。这样的显示转换被称为类型转换,()被称为类型转换符
③显示读取身高的整数值,显示出标准体重的实数值。标准体重根据公式(升高-100)×0.9进行金酸,所得结果保留一位小数。
#include3.第二章总结int main() { int a; puts("请输入您的身高"); scanf("%d", &a); printf("您的标准体重是%.1f", (double)(a - 100) * 0.9); return 0; }
提示:仅是个人问题进行总结:
(1).不想使用转换功能,只想输出%时,必须写成%%
(2).当使用不具有转换功能的puts函数是,就不能写成%%
(3).double类型与int类型的转换说明符号不一样,double是%f而int是%d。当在scanf函数是double应该是%lf
(4).%5d…显示至少5位的十进制整数 %5.1f…显示至少5位的浮点数。但是小数点后只显示一位
(5).通常 (数据类型)表达式 的形式会把表达式的值自动转换为该数据类型对应的值。这样的显示转换被称为类型转换,()被称为类型转换符



