首页 > 编程语言 > 详细

C语言博客作业04--数组

时间:2018-12-08 23:00:55      阅读:297      评论:0      收藏:0      [点我收藏+]

第四次作业

1.本章学习总结.

1.1 思维导图

技术分享图片

1.2 本章学习体会及代码量学习体会

1.2.1学习体会

  • 这周学习了有关数组的知识,感觉数组是储存数据的一种新的方式,和之前循环嵌套和函数的知识都有些不同的地方,所以学习难度也比前几周的大;
  • 数组这一章要学习的内容比前面的多,一维和二维数组还有后面的字符数组,感觉自己上课时还是有些知识没有掌握,所以课后刷题的效率太慢呢了,难一点的题要想好久才能开始写;
  • 开始做二维数组的时候有些题觉得无从下手,完全没有思路,会问做好的同学或者百度一下,然后才能知道这题大概的解决思路是什么,所以还是要更熟悉课本的内容和老师课堂讲的知识点,学习更多不同类型题目的大概解决思路与方法;
  • 这几周下来感觉到了c语言学习的难度,基本上每个知识的难度都是越来越大,越到后面学习难度越大,所以自己还是要抓紧时间,在课后的时间里面认真预习和码代码,做题的速度跟上题集发布的进度,以免再出现一章多个题集而自己做题跟不上的情况;

1.2.2 代码累计

技术分享图片

2.PTA总分

2.1截图PTA中Y一维数组,二维数组,字符数组的排名得分

2.2 我的总分

  • PTA总分:分;

3.PTA实验作业

3.1 PTA题目1

输入一个整数,输出整数中每一个数对应的拼音

3.1.1 算法分析

定义num为输入的数,n用于存放整数中的各位数,i用于计算各位数字,count统计整数的位数,定义Num和j用于控制数字前是否有空格 输入数num if(num<0) then num=-num then 输出拼音fu和一个空格 n=num; if(num>9) then do n=n/10; i=i*10; count++; 当n=0时退出循环 i=i/10; count--;得到的count的值为num位数以及i为对应位数的最小值如num=1234则i=1000 j=count; Num=num; do{ if(Num>9&&j!=count) then 在数字后输出一个空格 n=num/i; then switch(n){ case 0: then 输出数字0的拼音,结束此次循环; case 1: printf("yi");break; case 2: printf("er");break; case 3: printf("san");break; case 4: printf("si");break; case 5: printf("wu");break; case 6: printf("liu");break; case 7: printf("qi");break; case 8: printf("ba");break; case 9: printf("jiu");break; } count--; num=num%i; i=i/10; }当count值为0时,num的每一位数都已经输出,结束循环

3.1.2 代码截图

技术分享图片
技术分享图片

3.1.3 测试数据

技术分享图片

3.1.4 PTA提交列表及说明

技术分享图片

  • Q1:不知道如何循环读入整数的每一位数;
  • A1: 通过不断除10和取余来计算每一位数,然后引入一个新的变量n来存放,循环读入n的值;
  • Q2:调试后的答案正确但提交总是提示格式错误;
  • A2: 在最后一个输出的拼音后存在空格会出现格式错误,所以把空格加在每一个拼音前输出,并且第一个拼音前不输出;

3.2 PTA题目2

输入一个随机数与猜的次数,随后输入若干个数与随机数进行比较大小,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前输入了一个负数,也输出“Game Over”,并结束程序。

3.2.1 算法分析

``` 定义rnum为随机数,num为猜的数,N为限制猜的次数,i为已经猜的次数;
输入随机数和规定次数
i=1;
do
输入猜的数 then
if i=1且一次猜中,输出Bingo,结束循环
else if 三次以内猜中
输出Lucky You!;结束循环
else if 超过三次但在规定次数N次内猜中
输出Good Guess! ;break;
else if 未超过规定次数且猜的数小于随机数rnum
i++;
输出Too small然后换行,继续循环
else if 未超过规定次数且猜的数大于随机数rnum
i++;
输出Too big然后换行,继续循环
else if 猜的次数大于规定次数
直接输出Game Over;结束循环
else if 输入的数为负数
直接输出Game Over");结束循环
}当猜的数num小于0时,结束循环

3.2.2 代码

技术分享图片

3.2.3 测试数据

技术分享图片

3.2.4 PTA提交列表及说明

技术分享图片

  • Q1:输入数字超过N次时循环不会结束
  • A1:引入变量i统计输入的次数,只要在规定次数内未猜中i都加1,知道i=N;
  • Q2:第三次猜中时总是会输出Good Guess!
  • A2:误i的初始值设为0,只要输入了一个猜的数就是猜了一次,所以i的初始值应该是1;

3.3 PTA题目3

给定四种水果价格,输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而输入0即退出;输入其他编号,显示价格为0。

3.3.1 算法分析

``` 定义choice为输入的编号,定义n为输入编号的次数;
定义price为水果的价格;
for(n=1;n<=5;n++){
输入需要查询水果的编号
if(n==1) then
输出:[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
if(choice==0)
结束循环
switch(choice){
if choice为1,rice=3.00;结束循环;
case 2:price=2.50;break;
case 3:price=4.10;break;
case 4:price=10.20;break;
default:price=0.00;break;
}
换行输出对应的价格;
return 0;
}

3.3.2 代码

技术分享图片

3.3.3 测试数据

技术分享图片

3.3.4 PTA提交列表及说明

技术分享图片

  • Q1:菜单会循环输入五次,答案有多余字符;
  • A1:在循环中加入另一个条件,即在第一次输入之前才输出菜单,第一次以后菜单不输出;
  • Q2:输入超过1~4的数时答案错误;
  • A2:在switch语句中加入一个判断,即输入1~4以外的字符时price=0.00;

4.代码互评

4.1 代码截图

  • 同学代码
    技术分享图片

  • 我的代码
    技术分享图片

4.2

不同
1.空格的输出方式不同,我的是在每个拼音前输出,她的是最后单独输出;
2.计算每一位数的方式不同,我采用整除10与不断取余的方式,她采用整除平方的方式;
相同
1.都是先计算出整数的位数,然后才进去判断每一位数的循环;

C语言博客作业04--数组

原文:https://www.cnblogs.com/NOH8xxy/p/10089521.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!