C语言I——作业07

本周学习了C语言编程,完成了包括韩信点兵、找最高分、计算平均价和古角猜想等作业,涉及循环、条件判断等基础算法。在编程过程中遇到了一些错误,如括号使用不当、变量未初始化等问题,通过修正后理解了循环和条件语句的运用。此外,了解了分治法和贪心算法的基本概念,虽然感觉有一定难度,但通过不断实践和学习,逐渐掌握了相关知识。
摘要由CSDN通过智能技术生成
这个作业属于哪个课程https://bbs.csdn.net/forums/csuft_swxy_C?joinKey=rjrg8lmq4wzq-p9oj9kxrkm-1-60300df3382549104a12bbe9f193eb77&typeId=17321
这个作业要求在哪里https://bbs.csdn.net/topics/603526787
这个作业的目标<循环的用法>
学号<20218527>

一、本周作业(总分40分)

1.1 完成PTA作业,并给出编程题完成截图,截图上有自己的学号及姓名标识(不是截图形式的计0分)(每题5分)

7-1 韩信点兵 (10 分)

在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
  1. 按从1至5报数,记下最末一个士兵报的数为1;
  2. 再按从1至6报数,记下最末一个士兵报的数为5;
  3. 再按从1至7报数,记下最末一个士兵报的数为4;
  4. 最后按从1至11报数,最末一个士兵报的数为10;

请编写程序计算韩信至少有多少兵。

输入格式:

本题无输入

输出格式

输出韩信至少拥有的士兵人数。

在这里插入图片描述数据表达:用int定义变量n,i,并给i赋初始值0
数据处理:用for循环,初始化条件为i=1,没有终止条件,所以用break终止循环,更新条件为i++,在循环中用if语句设置条件(i % 5 == 1) && (i % 6 == 5) && (i % 7 == 4) && (i % 11 == 10)来筛选需要的结果,然后用break结束循环,最后输出结果。

在这里插入图片描述

  • 编译错误:条件之间没有用括号。

7-2 找出一批学生的最高分

本题要求编写程序,找出最高分。

输入格式:

输入在一行中给出一系列非负整数,其间以空格分隔。当读到负整数时,表示输入结束,该数字不要处理。

输出格式:

在一行中输出最高分。

输入样例:

在这里给出一组输入。例如:

67 88 73 54 0 95 60 -1

输出样例:

在这里给出相应的输出。例如:

95
在这里插入图片描述

  • 数据表达:用int定义变量n,a,b,i,并给变量i赋初始值0。
  • 数据处理:先输入第一个值到变量b中, 然后用while循环,条件为输入的值大于0,目的使当输入-1时结束循环,在循环中用了if语句,目的是筛选大的值然后继续输入下个数,直到输入-1,结束循环,最后输出最高分。
    在这里插入图片描述

7-3 购物(二)

用户购买了若干个商品(商品数不超过10),现在,他告诉你每件商品的价格,你计算出这些商品的平均价格。

输入格式:

若干个以空格间隔的实数(每个数不超过100000),以-1作为输入结束的标志。

输出格式:

一个实数,表示商品的平均价格,精确到小数点后两位。

输入样例:

890.78 2769.8 12300 3532.2 -1

输出样例:

在这里插入图片描述

  • 数据表达:用int定义变量i,用double定义变量x,sum,y,n。
  • 数据处理:先将值输入变量n中,令变量sum也输入一样的值,用if语句,条件为n=-1,就输出0.00,如果n不等于-1,就开始while循环,继续输入下一个值到变量n中,然后变量sum等于输入的值的和,并且i不断加1,直到输入的值为-1时结束循环,最后输出总和除以i,即平均数
    在这里插入图片描述
    部分正确:开始没有加if(n==-1)的部分,没有考虑到所有情况

7-4 循环-古角猜想

日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。

输入格式:

输入一个自然数n

输出格式:

输出每次运算步骤,直到结果为1.

输入样例1:

5

输出样例1:

5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
在这里插入图片描述

  • 数据表达:用int定义变量n。
  • 数据处理:先输入值到n中,用while循环,如果除以2取余数不为0,即为偶数,然后使n除以2,如果n为奇数就乘以3加1,直到n为1
  • 结束循环。
    在这里插入图片描述
    在这里插入图片描述
    编译错误:变量n没有输入,忘记写scanf("%d",&n);

2. 学习总结

2.1 学习进度条(5分)

周/日期这周所花的时间代码行学到的知识点简介目前比较迷惑的问题
第13周6h140循环,for循环,一些简单的算法没有什么疑惑

2.2 累积代码行和博客字数

在这里插入图片描述

2.3 学习感悟

1.这周课上学了一点算法的概念,了解了分治法和贪心算法,感觉这些算法还是比较难的,然后现在可以比较了解这些概念,很多东西一开始都不会,但是我觉得学习c语言时需要不断地积累。一定要学会模仿别人优秀的代码、优秀的算法,然后将它记下来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值