这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业08 |
我在这个课程的目标是 | 学习并运用好while语句和do while语句 |
这个作业在那个具体方面帮助我实现目标 | 在对PTA中的题目的理解与运用上和对同学代码的互评上可以帮助我 |
参考文献 | 百度百科 |
1.PTA实验作业
1.1 求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过10
9
的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6
1.1.1数据处理
数据表达:定义了整型变量N, a, i = 0, sum = 0;
数据处理: 伪代码展示
include<stdio.h>
int main(void)
{
定义整型变量 N, a, i=0, sum=0;
输入要正整数N;
将N赋值与a;
while(a){
sum = sum + a % 10; 求sum加上a除以10的余数
a = a / 10; 求a除以10后的数
i++; 累加出a的位数
}
输出求出的位数i和各位数的和;
return 0;
}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
321 | 3 6 | 三位数 三加二加一等于6 |
0618 | 4 15 | 四位数 零加六加一加八等于15 |
0728 | 4 17 | 四位数 零加七加二加八等于17 |
1.1.4 PTA提交列表及说明
答案正确:由于在vs上提前写了,所以就没出现错误。
1.2 韩信点兵
在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1至5报数,记下最末一个士兵报的数为1;
再按从1至6报数,记下最末一个士兵报的数为5;
再按从1至7报数,记下最末一个士兵报的数为4;
最后按从1至11报数,最末一个士兵报的数为10;
请编写程序计算韩信至少有多少兵。
输入格式:
本题无输入
输出格式:
输出韩信至少拥有的士兵人数
1.2.1 数据处理
数据表达:定义整型变量 i = 1;
数据处理:伪代码展示:
include<stdio.h>
int main(void)
{
定义i=1;
while(i)
{
如果(i除以5的余数等于1且i除以6的余数等于5且i除以7的余数等于4且i除以11的余数等于10)
{
输出i;
跳出;
}
否则
i进行累加;
}
return 0;
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
无 | 2111 | 韩信的军队共2111人 |
1.2.4 PTA提交列表及说明
编译错误:开始在vs上打得scanf_s,忘记改过来了
2.代码互评
同学代码截图:
我的代码截图:
1, 首先他定义的变量与我差不多,这都没什么本质区别
2,不同的是,他用的是do while语句,我觉得直接用while可能更简洁一些,不过他的也很全面
同学代码截图:
我的代码截图:
1,第一位同学的代码将不满足题目条件的作为while语句的表达式,而我的与他不一样,我是用的变量i,可能他的更加简洁一点
2,第二位同学的代码用的for循环语句,和我相同的是都有在循环语句中嵌入if分支语句
3.学习总结
3.1 学习进度条
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
这一周学习的是while,do-while从句,而在做题中却往往不止这么简单,用到了一些嵌入式语句,还有字符型变量,感觉pta里的题目越来越难了,应该是我的基础还是不够稳固,还是要多多温习啊,抓紧时间继续冲!