1 混合运算
【例】类型强制转换场景
#include <stdio.h>
int main()
{
int i=5;
float j=i/2;
float k=(float)i/2;
printf("%f\n",j);
printf("%f\n",k);
return 0;
}
j得到的值为2,k得到的值是2.5,因为当我们整数做除法时,默认进行整除,要得到小数,需要首先进行强制类型转换操作。
2 printf 函数
printf函数可以输出各种类型的数据,包括整型、浮点型、字符型、字符串型等,实际原理是printf函数将这些类型的数据格式化为字符串后,放入标准输出缓冲区,然后将结果显示到屏幕上。
#include <stdio.h>
int printf(const char *format,…);
printf函数根据format给出的格式打印输出到stdout(标准输出)和其他参数中。
字符串格式(format)由两部分组成::显示到屏幕上的字符和定义printf函数显示的其他参数。我们可以指定一个包含文本在内的format字符串,也可以是映射到printf的其他参数的特殊字符。
int age = 21;
printf("Hello %s,you are %d years old\n","Bob", age);
代码的输出如下:
Hello Bob,you are 21 years old
printf函数的具体代码形式:
代码 | 格式 |
%c | 字符 |
%d | 带符号整数 |
%f | 浮点数 |
%s | 一串字符 |
%u | 无符号整数 |
%x | 无符号十六进制数,用小写字母 |
%X | 无符号十六进制数,用大写字母 |
%p | 一个指针 |
%% | 一个“%”符号 |
位于%和格式化命令之间的一个整数被称为最小字段宽度说明符,通常会加上空格来控制格式。
用%f精度修饰符指定想要的小数位数。例如,%5.2f会至少显示5位数字并带有2位小数的浮点数。
用%s精度修饰符简单地表示一个最大的长度,以补充句点前的最小字段长度。
printf函数的所有输出都是右对齐的,除非在%符号后放置了负号。例如,%-5.2f会显示5位字符、2位小数位的浮点数并且左对齐。
【例】printf函数输出对齐
#include <stdio.h>
int main()
{
int i=10;
float f=93.6;
printf("student number=%3d score=%5.2f\n",i,f);
printf("student number=%-3d score=%5.2f\n",i,f);
printf("%10s\n","hello");
}

执行结果
执行结果如下图所示,可以看到整型数10在不加负号时靠右对齐,加负号时靠左对齐,%10s代表字符串共占用10个字符的位置。因为printf函数默认靠右对齐,所以"hello"字符串相对于左边的起始位置有5个空格的距离。