“第九天”

     练习:

   这里注意我用scanf函数获取字符串时,第一种是在123456后面键入了一个空格,而第二种这是没有键入空格,第一种可以看出,输入的值,是和预料相一致的,123456,以及后面的三个浮点数分别赋给了这四个变量;可是第二种输入时,并没有在123456后面输入空格,就和预料不符,这是因为scanf在获取字符串时,是以规定字段宽度或者空白符为结束标志的,在这里即使后面有分号,scanf也只是把它视为一个字符,存储到字符串中去,所以第二种键入的所有值都存储到了字符串num中,而后面三个浮点数并未赋值。

        在自定义类型时,类型名后面没有分号,但是函数体之后,大括号外有分号。

下面这个用以求最大值,我尝试的是用三目运算符算的,这样看起来其实也蛮麻烦的,不过证明了确实是可行的

下面这个是尝试用字符串存储数字,第一种和第二种的区别是一个打印的是字符型,一个打印的是整型,但无论是哪一个结果都非预料,这里还是反映了scanf的读取,由于在键入的时候,1后面是空格,所以scanf在读取字符串时,实际上只读取了一个1,后面的2,3,4都没有读取,因为没有办法跳过1后面的空格,所以后面三个值还是初始化的0(空字符),所以在字符型打印时,实际上是打印了四个字符,1后面还是三个空字符,而第二种在scanf的读取环节和第一种一样,但打印的是整型,而字符 1 的 ASCII码是49,字符 0 (空字符)的ASCII码是 0 ,所以打印的是49000。这里点的其实主要是字符数字表面的显示的数字和其实际储存ASCII码所表示数字的区别

        如果使用数组的话,可以这样利用循环来进行操作:如下:但这里面有个小错误,第一种输入是可以正常运行的,第二种则不可以,程序卡在第二个循环中,无法完成运行,这里倒是以为的让我意思到了 i++不可以随便使用,在程序中进行大小判断重赋值时,我的 i++是在 if 语句里面的,但是由于不能保存 if 语句每次都运行,所以三次循环之后,i 的值可能并没有到4,导致无法跳出循环,程序卡在这里,所以i++在何处使用还是需要斟酌斟酌的,修改可以把 i++ 单独提出来,放在 if 语句外面,也可以放在while中,这样 i++一定会运行,但是注意不要放在 if 的判断语句中,这样虽然 i++虽然也一定会运行,但会导致,进行大小比较的值,和后面的赋值不是同一位,这里max最终打印的值之所以是这样的,是因为最好进行赋值时,把 arr[4] 的值赋给了max ,但 arr[4]并没有定义赋值,其值未知,但我将这个程序运行了几次,发现每次max的值都是一样的,这说明arr[4]是存在的,且其有值,具体为什么目前我还不理解,可自行查阅,运行结果如图三。

另外我感觉这种方法也挺好玩的,在while循环中,完成获取变量值和大小判断,再赋值,感觉还是比较简洁的。

这里需要注意的是在求体积的时候,注意 4/3.0 ,不能用4/3,前者的结果是浮点型,后者的结果是整型结果为 1 ,会影响后续的计算,对于结果如果感觉不够精确,可以将float换成double型,将输出类型 %.3f 换成 %.3lf .

猜数字加关机,这里面很多东西都不明白,没有办法解释,但这里面关于处理得到0·99的随机数还是让人开眼的,是用除以100,求模赋值得到的,可以学习一下

下面这个程序,可以分析一下为什么sizeof(a)打印出来的是8,而不是4.

debug是调试版本  -  程序调试的版本

release是发布版本   -  是发布给用户使用的版本

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值