今天终于学完了弟三章,实际上昨天没剩下多少了,今天主要是在写练习。
//int main(void)
//{
// int a;
// unsigned int b;
// a = 12;
// b = '\012';
// printf("a=%d,b=%u", a, b);
// return 0;
//}
首先试了下unsigned int和正常int的不同,因为书上在打印\012时答案上只显示了unsigned int,但现在看来应该都是可以的。
//int main(void)
//{
// printf("Type int has a size of %zd bytes.\n", sizeof(int));
// printf("Type char has a size of %zd bytes.\n", sizeof(char));
// printf("Type float has a size of %zd bytes.\n", sizeof(float));
// return 0;
//}
然后是测量字符所占比特大小,就是运用了sizeof和%zd。
//int main(void)
//{
// int a = 12.99;
// float b = 2.3428923943;
// printf("%d\n%f", a, b);
// return 0;
然后是不同数据类型的匹配,像a就会只剩12,不会四舍五入,b只会保留到第六位小数,float只能保证前六位的精度。
//八进制打印
//int main(void)
//{
// int num2 = 191;
// printf("num2=%#o or %d", num2, num2);
// return 0;
//}
然后是八进制打印,我到现在还没搞懂‘\ddd’怎么使用和打印,就算用了,打印出来的也和正常的不一样。
//int main(void)
//{
// char a = '\n';
// printf("%c", a);
// return 0;
//}
//int main(void)
//{
// printf("\n");
// return 0;
//}
然后是非打印字符的打印,这个就是从前面的练习里面学到的,在这里又给复习了一下。
//练习一
//int main(void)//由字符找ASCII值
//{
// char a;
// scanf("%c", &a);
// printf("The %d is %c", a, a);
// return 0;
//}
//int main(void)//由ASCII值找字符
//{
// char a;
// scanf("%d", &a);
// printf("The %d is %c", a, a);
// return 0;
//}
接下来就是练习了。要找ASCII值就用scanf("%c",&a),要找字符就用scanf("%d", &a)。
//练习二
//int main(void)
//{
// float value;
// printf("Enter a floating-point value:");
// scanf("%f", &value);
// printf("fixed-point notation:%f\n", value);
// printf("exponential notation:%e\n", value);
// printf("p notation:%a", value);
// return 0;
//}
然后是指数记数法的打印,和昨天的一样。%e是指数记数法,%a是以十六进制指数记数法打印。
//练习三
//int main(void)
//{
// int age;
// printf("Please input your age:");
// scanf("%d", &age);
// printf("You have lived %f", age * 3.156e7);
// return 0;
//}
练习三是输入年龄计算时间,发现一个问题就是在引入是如果先声明在取地址的话,就会报错,就例如如果我先float time=age*3.156e7,再scanf("%d",&age),就是错误的。
//练习四
//int main(void)
//{
// int water;
// printf("We have the number of ");
// scanf("%d", &water);
// printf("and there are %f molecule in it", water * 950 / 3e-23);
// return 0;
//}
下一个是计算水分子数,这个数据真的太大了用%f算实际上还没到小数的位置就开始不准了。
//练习五
//int main(void)
//{
// int inch;
// scanf("%d", &inch);
// float cm;
// cm = inch * 2.54;
// printf("%d is %f", inch, cm);
// return 0;
//}
下一个,由inch转换为cm,挺简单的,没什么好说的。
/练习六
//int main(void)
//{
// int cup;
// scanf("%d", &cup);
// float pint = cup / 2;
// printf("I have %d cups\n", cup);
// printf("they are also %f pints\n", pint);
// printf("and %d ounces,%d ladles,%d teaspoons\n", cup * 8, cup * 16, cup * 48);
// return 0;
//}
最后一个是品脱,盎司什么的,出现的问题在于pint是cup的两倍大,所以我用float引入参量pint并且计算pint=cup/2,但打印的结果只有整数位,即如果我输入cup=5,那么pint只会有2,而不是2.5,不知道问题出在了哪里。
标签:return,int,第九次,void,练习,C语言,printf,main,scanf From: https://blog.51cto.com/u_16187763/6951778