函数 数组 循环

 

 

 

一,PTA实验作业

题目1

7-1 求组合数(15 分)

本题要求编写程序,根据公式Cnm​​=m!(nm)!n!​​算出从n个不同元素中取出m个元素(mn)的组合数。

建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double

1.提交列表

 

2.设计思路

将所需元素输入 ,再调用函数fact()即可。

3.调试过程

当m==n/2时,结果错误。没注意定义成了int型   将其改为double类型即可

题目2

7-3 求幂之和(15 分)

本题要求编写程序,计算sum=21​​+22​​+23​​++2n​​。可以调用pow函数求幂。

1.提交列表

 

2.设计思路

调用pow函数,再进行累加求和。

3.调试过程

第一次因为在输出时忘记加空格,所以导致格式错误。第二次加上空格就正确了。

题目三

7-10 判断素数(10 分)

本题的目标很简单,就是判断一个给定的正整数是否素数。

1.提交列表

2.设计思路

 

3.调试过程

一遍过。

二,同学代码结对互评。

题目

7-8 求n以内最大的k个素数以及它们的和(20 分)

本题要求计算并输出不超过n的最大的k个素数以及它们的和。

许日祯同学的代码

我的代码

啊,我的代码真是长到自己都不知道怎么打出来的,无可厚非,小日同学的代码更简短更清晰,完美胜出。但是,我会用数组啊,不过貌似在这题上不太适合。以后会多加注意审题,理清思路。

三,PTA排名

四,本周学习总结

函数是一个完成特定工作的独立程序模块,由C语言系统提供定义,编程时只要直接调用即可,不同函数完成的是不同的功能,但它们都有一个共同点----实现一个计算,并可以得到一个明确的计算结果。函数首部后面不能加分号,他和函数体一起构成完整的函数定义。实参和形参一一对应,数量应相同,顺序应一致。return语句只能返回一个值。函数声明是一条C语句,而函数定义时的函数部首不是语句,后面不能跟分号。

这次PTA的第六题还是不会。

 

一,PTA实验作业

题目1

7-2 求最大值及其下标(20 分)

本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。

1.提交列表

2.设计思路

把数字存入数组,再首尾交换

3,调试过程

一遍过。

题目2

7-6 冒泡法排序(20 分)

N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。

本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。

1.提交列表

2.设计思路

利用数组存入数字,再循环判断,依次比较,再输出。

3,调试过程

第一次编译错误是由于语句结束忘记加分号,第二次部分正确,,,至今原因不明,,,啊,难过

题目3

7-4 查找整数(10 分)

本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。

1.提交列表

2.设计思路

定义一个数组a,将整数存入数组中,再给定数字b,将数组与数字进行比较看是否相等,循环至结束

3.调试过程

一遍过。

二,同学代码互评。

题目

7-13 找鞍点(20 分)

一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

本题要求编写程序,求一个给定的n阶方阵的鞍点。

我的代码

雷慧同学的代码

啊,没有对比就没有伤害,看看雷慧妹子的代码,比我的短,思路也清晰,我的没有将其汇总,比较凌乱导致部分正确,头脑也好乱,嗯,的确收获很多打代码的的技能,下次打代码前一定要画流程图。

三,PTA排名

四,学习总结

不能分配常量大小为0的数组。
访问数组要用下标访问,且下标要从0开始。
数组在内存中连续存放。
数组的数组名相当于数组首元素的地址。
sizeof(数组名),数组名表示整个数组,求的是整个数组的大小;&数组名,数组名表示整个数组,取出来的是数组的地址。除此之外,所有的数组名均表示首元素的地址,地址均为四个字节。
二维数组的表示:int arr[ ] [4] (对); int arr[3] [ ] (错)。
二维数组的理解:int arr[3] [4]可以理解为三个一维数组,每个一维数组中有四个元素。
若 int *p = arr , 则 i [arr] = i ; arr [i] = i ; *(i+arr) = i ; * (p+i) = i ; p [i] = i 这些表示法均成立。
一维数组的大小计算:int arr [10]={0}; int sz =sizeof(arr) / sizeof (arr[0])

本次PTA作业第7,9题还不会。

 

一.PTA实验作业

题目1

7-7 计算阶乘和

对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。

1.提交列表

2.设计思路

每轮循环求i的阶乘,加给sum,再将i+1,进行下一轮循环,当i大于N时,循环结束。

3.本题调试

第一次提交审错题,第二次就OK了,第三次大概是忘了交过又交了一遍。

题目2.

 7-19 求简单交错序列前N项和

本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。

1.提交列表

2.设计思路

定义flag,denominator为分子和分母,i为循环执行次数,item为每次循环时分子除以分母的值,每轮循环将item加给sum。每轮循环将item加给sum题目中每隔一次循环item变号,所以每次循环时将flag变号,同时将i加一,直到i到大于n,停止循环,输出sum的值。

3.调试过程

定义a为已循环次数,但在每次循环够没有将其加一,导致程序进入死循环。

题目3.

1.7-5 找出最小值

 本题要求编写程序,找出给定一系列整数中的最小值。

1.提交列表

 

2.设计思路。

输入n为循环次数,先输入一个整数,让它为最小值,之后每轮循环都输入一个整数,将这个整数与当前最小值比较,若小于最小值,则将其赋值给最小值。

3.调试过程

 

定义了I,后面又使用了i,导致编译错误。

二.同学代码结对互评。

PTA40题

我的代码

雷慧同学的代码

此题虽然我不懂非零返回是个什么鬼错误,总感觉自己的没错,但是经过雷慧同学的指导,我知道本题用子函数加循环体做更合适。

雷慧同学的代码设计更清晰简单。

三.截图本周PTA最后排名

四.本周学习总结

1.我学到了

while和for 循环都可以用来处理同一个问题,一般可以互相代替。
对于while和do-while循环,循环体中应包括使循环趋于结束的语句。
用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成,而for语句可以在内部实现循环变量的初始化。
for循环是最常用的循环,它的功能强大,可以代替其他循环。

2.第8,9题还是不会做。

3.循环结构考试总结:

while

特点:如果一开始条件不成立,永远不会执行循环体

do while

特点:不管条件是否成立,至少会执行一次循环体

 for

选择:一般优先考虑for循环,然后在考虑while循环,但需要根据具体情况,有时while比for好用

break的使用:1.switch语句:退出整个switch语句 2.循环结构:退出整个循环结构

注意点:多重嵌套只对最近的的循环体有效

continue的使用:结束当前这次的循环体,进入下一次循环体。

 

 

 

 

 

 

 

 

posted on 2017-12-30 14:10  一个女的  阅读(2014)  评论(0编辑  收藏  举报