1.直接输出文字
(注意编码)
否则:
2.printf输出问题
注意数据的类型是整数还是小数
printf("占位符",变量名),这里注意是变量名,区分scanf()中的是取地址&。
#include <stdio.h>
//练习
int main()
{
printf("liaojunqi handsome!\n");
printf("廖俊棋帅!\n");
printf("以上是无占位符输出,即直接输出\n\n\n");
int data = 10;
int data2 = 6;
int result;
float result2;
float result3;
//int result4;
result = data / data2;
result2 = data / data2;
result3 = (float)data / data2;
//(float)result4 = data / data2; 编译报错
printf("以整数类型输出result:10/6 = %d\n",result);
printf("以整数类型输出data/data2:10/6 = %d\n\n\n",data/data2);
printf("不改数据类型以浮点型输出result:10/6 = %f\n",result);
printf("不改数据类型以浮点型输出data/data2:10/6 = %f\n\n\n",data/data2);
printf("改float后以浮点型输出result2:10/6 = %f\n",result2);
printf("改float后,强改data(float)类型,以浮点型输出result2:10/6 = %f\n\n\n",result3);
printf("限制小数位\n");
printf("---%0.2f---\n---%1.2f---\n---%7.2f---\n---%-7.2f---\n",\
result3,result3,result3,result3);
return 0;
}
输出结果:
10/6=1.66666666......
由于result,data是整型int所以不改类型只能输出整数部分: 1
应把result和data改成float类型,改类型后的result→这里用result3表示
result3 = (float)data / data2的(float)把int类型的data强改成float类型,计算也正确
3.%m.nf用法
printf("---%0.2f---\n---%1.2f---\n---%7.2f---\n---%-7.2f---\n",\
result3,result3,result3,result3);
这里代码过长用“\”切换到下一行,就是把两行当作一行执行,也可写成:
printf("---%0.2f---\n---%1.2f---\n---%7.2f---\n---%-7.2f---\n",result3,result3,result3,result3);
这里主要是测试%m.nf用法
m代表 标定一个数据的列数(包括小数点)
n表示 限制小数的位数
%0.2f 即 m=0,n=2
由于result3的结果是1.6666666......
所以小数为就限定了两位,(四舍五入)表示:1.67
所以此时数据的列数为(”1“,“.”,"6","7")4列,大于0列,感觉m没啥作用
当m = 7时,即%7.2f是 标定数据7列,比当前列数大3列,因此在数据前补3个空格
同理当m = -7时,即%-7.2f,在数据后补3个空格。