写点什么

c 语言学习笔记 2021/12

作者:姬翔
  • 2021 年 12 月 28 日
  • 本文字数:919 字

    阅读完需:约 3 分钟

c语言学习笔记2021/12

最近工作需要,从测试试着转 c/c++,也要开始恶补这方面的知识了。买了本《c 语言程序设计现代方法》在看,限于时间关系没有做所有的课后编程题,而是挑了一些做供参考。


第四章编程题:

编写一个程序,要求输入一个三位数,逆序打印出来。

IDE 用的 xcode,代码直接截图好了:

实现核心其实是求余和相除的理解,通过 scanf 函数得到一个数字,然后分解成三个数字。

运算符/和 %需要特别注意以下几点:

·当两个操作数都是整数时,运算符/会丢掉分数部分来截取结果,因此 1/2 的结果是 0 而不是 0.5

·运算符 %要求操作数均是整数,否则无法编译通过


自增和自减操作符

和赋值运算符一样,++和--也有副作用,就是会改变操作数的值.计算表达式++i(前缀自增)的结果是 i+1,副作用是自增 i:

int i = 1;

printf("i is %d\n",++i); //"i is 2"

printf("i is %d\n",i); //"i is 2"

计算表达式 i++(“后缀自增”)的结果是 i,但是会引发 i 随后自增:

int i = 1;

printf("i is %d\n",i++); //"i is 1"

printf("i is %d\n",i); //"i is 2"

第一个 printf 函数显示了 i 自增前的原始值,第二个 printf 函数显示了 i 变化后的新值。++i 意味着“现在先用 i 的原始值,稍后再自增”.这个“稍后”有多久呢,c 语言没有给出精确时间,但是可以认为 i 将在下一条语句执行前进行自增


第五章编程题:

编写一个程序,从用户输入的 4 个整数中找出最大值和最小值,要求尽可能少用 if 语句(提示:4 条就足够了)

这个题在刚开始思考思路的时候,想的是每一个数字去和另外的数字对比,但这样很明显要判断很多次。后来想明白了,把四个数分成两组,在这两组中先找到各自的最大值和最小值,再去对比这两组的最大值和最小值,就可以满足要求了。代码为了看起来舒服一点放的截图



第八章数组:

编程题 1:输入一串数并显示重复数字。

直接上图:


如果输入是 12345 这种没有重复数字的话则会显示这个:

核心思路是初始化了一个布尔类型的 digit_seen 数组,默认值全部位 false。当 scanf 读取到输入的数字后,对其求余得到最后一位数字 digit。如果 digit 是第一次出现,则将对应下标的数组值改为 true,如果出现重复的 digit,则会将这个值另存到别的数组中并进行打印。number_str 这个数组用来存放重复的数字,长度写死为 20,这块应该可以再优化,可能用不到这么大。

发布于: 刚刚
用户头像

姬翔

关注

还未添加个人签名 2018.12.05 加入

还未添加个人简介

评论

发布
暂无评论
c语言学习笔记2021/12