#define PI 3.14159
//int main(void)
//{
// int number = 7;
// float pies = 12.75;
// int cost = 7800;
// printf("The %d contestants ate %f berry pies.\n", number, pies);
// printf("The value of pi is %f.\n", PI);
// printf("Farewell! thou art too dear for my possessing,\n");
// printf("%c%d\n", 's', 2 * cost);
// return 0;
//}
在最后的printf("%c%d\n", 's', 2 * cost);这行代码中,'s'没有提前声明成变量或者直接打在双引号中,反而用了%c来打印,说明要打印的值不一定要改成变量后再打印,如果只是打印数据,可以不同加入说明文字。
int main(void)
//{
// float a = 23.43;
// printf("%1.1f\n", a);//23.4
// printf("%5.2f\n", a);//23.43
// printf("%5.3f\n", a);//23.430
// printf("%10.3f\n", a);// 23.430
// return 0;
//}
这个代码试验了宽度,指定精度的结果。宽度如果小于浮点数本身的字符大小,那会在数字前面增加空格,反之,则会自动扩大宽度。指定精度是打印的小数个数,符合四舍五入的原则。计算浮点数的字符大小要包括小数点,所以%5.2f打印出的结果才没有加上空格。
int main(void)
//{
// float a = 532.647;
// float b = -532.647;
// printf("%10.3f\n", a);// 532.647
// printf("%-10.3f\n", a);//532.647
// printf("%010.3f\n", a);//000532.647
// printf("%+7.2f\n%+7.2f\n", a, b);//+532.65//-532.65
// printf("% 7.2f\n% 7.2f\n", a, b);// 532.65//-532.65
// return 0;
//}
第一个和上面的一样,第二个加上了一个负号,表示从左侧对齐,所以532.647后面还有三个空格。第三个加上了0,空格全部转换成了0,但是0和负号不能连用,所以要表示出5332.647000可以直接改变指定精度。然后加号会显示出正负号,空格是将加号变成空格,然后负号不变。还有加号和空格也会计算在宽度里面,所以%+7.2f是不会增加空格的。
//练习
//int main(void)
//{
// float cash = 214.499;
// char name[40] = "LONG";
// printf("The %s family just may be %c%.2f dollars richer!\n", name, '$', cash);
// //The LONG family just may be $214.50 dollars richer!
// return 0;
//}
书上的练习,学以致用。不要忘记的的是字符串记得打上双引号。
#define PAGES 336
//int main(void)
//{
// short num = -PAGES;
// printf("%hd\n%hu", num, num);//-336,65200
// return 0;
//}
short的范围是-32768~32767,但是unsigned short是0~65535,其中0~32767代表本身,32768~65535代表负数,65535代表-1,65534代表-2,所以-336就是65200。
#define WORDS 65618
//int main(void)
//{
// int num = WORDS;
// printf("%d\n%hd\n%c\n", num, num, num);//65618,82,R
// return 0;
//}
short的范围是-32768~32767,而65618超过了short的范围,相当于65618除以65536,余下82,鉴于负数的存储方法,如果余数在32767~65536范围内会被打印成负数,这里被直接打印成82,对应的ASCII则为R。
标签:return,第十一次,练习,C语言,空格,int,num,printf,main From: https://blog.51cto.com/u_16187763/6978985