函数 数组 循环

 

一.第一题 7-1

1.本题pta提交

2设计思路

本题要求使用子函数求组合数,注意本题变量要求是双浮点型,在主函数中输入范围m,n,子函数为求sum的阶乘,并在子函数中用组合数公式即可

3代码截图

题目2 7-10

1本题pta提交

2设计思路

本题要求打出遇到的n个数字不同的年份,先定义num[4]={0},n[10]={0},并有一个years=year,用num来储存year的每个数,然后在i循环中使用n[num[i]]++,当n不等于0时,k++,循环结束退出判断k=dif,跳出大循环,如果不成立,则将n重新赋0,并将进入下一个year,k=0,最后输出应有的值。

3本题代码

4遇到的问题

之前代码的思路跟这个完全不一样,我是通过对年份的每一位数进行判断来执行count++,结果后来发现细节太多,然后一直修改,修改到最后还是无法全对,所以改了思路。

 3  7-5

1本题pta提交

2设计思路

本题要求近似求pi,并给出了公式,本题难点主要在子函数的运用,分子为阶乘,分母为3*5*7,循环几次即可。

3本题代码

二截图本周的pta排名

三同学代码互评

1互评同学

谢晔晖

2我的代码、互评同学代码截图

 

 

 

 

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题

不同之处:我用的是double来定义子函数,而同学用的是void,没有返回值,我觉得有返回值看起来比较清晰,还有就是对pi的定义同学采用了静态变量,省时,而我每一次都要重新输入比较麻烦,我比较喜欢同学对细节的处理,喜欢自己的思路。

四、本周学习总结

1.对子函数的使用,子函数可以使代码看起来更简便。

2.我们还学习了对指针数组的运用,但我在这里并没有太大体现,主要是对指针数组的不熟悉运用造成的,指针的地址还不太熟悉。

 

 

pta实验作业

1.7-21

2.设计思路

本题要求将方针循环右移,主要就是最后一个数与第一个数的对接。我先用一个数将最后一个数存起来,然后当其他循环结束时将最后一个放到第一个重复循环n次。

 

3代码截图

4本题遇到的问题

当时粗心在输出的时候将j++写成了i++。

第二题7-5

1本题pta提交

2设计思路

本题要将字符串的长度排序,基本思路并不难,只是在输入和排序的时候需要用到新的东西,比如说strcmp比较输入字符是否为#,还有就是strlen比较字符的长度,strcpy将字符串对调,还有首函数的定义,记得要加上string。

3代码截图

4本题调试过程遇到的问题

 

 这边第一个输入循环时,忘记将i++,变成了sum++,导致答案都错误

 第三题7-14

 1本题pta提交

2设计思路

本题要在一串数字中插入一个数,所以我定义了两个数组,让第二个数组比第一个大一位,先把他们全相等,然后找到插入位置,将其插入即可

3代码截图

4本题调试过程中遇到的问题

 

 

 不知道为什么总是无法满分,每次提交的分数均有不同。

二,截图本周目集的PTA最后排名。

三、同学代码互评

1互评同学

谢晔晖

2我的代码、互评同学代码截图

 

 

 

3我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

不同之处:对此问题时,我使用了两个数组解决问题(因为担心本来数组的空间不足),而谢同学用一个数组解决问题,我的思路比较清楚,而他的思路比较简单。

我比较喜欢谢同学的思路,因为思路比较简单,而我的思路因为担心空间不足显得较为复杂。

四、本周学习总结

1.1一维数组与二维数组的运用

int a[10],b[10][20];/*b[10][20]矩阵的运用*/

char c[10],ch[10][20];/*ch[10][20]为一个字符串数组每个字符串有20个长度。*/

2.1string 字符串的运算

strcpy(a,b)将b复制到a上,保存到a

strcmp(a,b)比较a,b,相等则输出0

strcat(a,b)将b接到a的后面并保存到a

strlen(a)计算a的字符长度

不足之处:

string的字符串运用的不够熟练。字符串写起来容易错。

 

---恢复内容结束---

一.PTA实验作业

1.7-6 本题pta提交列表

2.设计思路

定义M,N,i,sum=0,count=0.输入m,n。套用双层循环并使i=2为初值(1的话后面循环直接跳出),并在i循环用M%i判断,当等于0的时候跳出i循环。跳出或者循环结束后判断i是否等于M,等于则count++,sum=sum+M。然后等到M循环结束,输出count就为素数的个数,以及sum为它们的和。

3代码截图

4做题途中遇到的问题

 错误一

当时使用flag判断,少掉了m=n且不为素数的情况,如果出现该种情况代码初值必定为m,导致出错思路不大对。

2.7-12

pta上提交列表

2设计思路:本题需约分最简分式,首先定义分子分母和斜杠,然后开始判断如果num1<=num2,将num1作为循环终点,除到num1即可。然后在i循环中当num1%i&&num2%i==0时,为一个公约数。然后继续循环,直到i==num1。反之num2>num1也是。

 

3代码截图

4错误点1

没有思考分子大于分母的情况

3  7-21

该题pta

 

3设计思路

定义i,hh,mm。输入hh,mm,然后开始判断当hh>12且mm==0然后开始i循环hh>12多少输出多少dang,判断如果hh>=12&&mm>0然后开始i循环这边有一个边界问题要hh-11输出dang最后两种特殊情况hh<12时按格式输出hh,mm,然后当mm==0的时候,按格式输出。

4代码截图

4本题遇到的问题

少了对12点边界的计算,边界问题。

二.截图本周日集的pta排名

 

三、同学代码互评

1互评同学名称

许日祯

2.我的代码、互评同学代码

 

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出里出问题。

相同之处:总体思路并没有太大差别

不同之处:这边初定义的时候小日同学用了一个初值判断,引入了n,避开了m==1的情况,而我则是直接使用m就直接避开

比较起来的话我觉得自己的思路比较清晰,小日同学的n加的比较局促,我更喜欢自己的代码。

四、本周学习总结

1.1使用while,for语句进行循环。

1.2循环嵌套有进一步学习到

1.3switch语句的学习

不足之处

 循环嵌套起来可能会有些混乱,switch语句不太会用

posted @ 2017-12-30 16:51  每当每时每刻M  阅读(240)  评论(0编辑  收藏  举报