一、PTA实验作业
题目1:6-3 使用函数判断完全平方数
1. 本题PTA提交列表
2. 设计思路
- 1.定义int IsSquare( int n )函数
- 2.判断(sqrt(n)是否为整数
- 3.,sqrt(n)-(int) sqrt(n) ==0若是则返回1是否则返回0
3.本题调试过程碰到问题及PTA提交列表情况说明。
遇到问题
1.不知道如何去判断一个数是否为整数,后来想到用int强行定义为整数在再用原来的
减去这个值来判断,十分巧妙。
题目2:6-6 使用函数输出水仙花数
1. 本题PTA提交列表
2. 设计思路
- 1.定义int narcissistic( int number )函数并定义i,j,q=0,y=0,x,d=1,c,bit,e 9 个整数变量
- 2.x=number;e=number
- 3.在循环中将number重复除以10,得出number的位数并存在q中
- 4.进入while循环while(x),bit=x%10得出number的个位数的值
- 5.进入嵌套循环for(j=1;j<=q;j++) d*=bit,求出number各位数的q次方的值
- 6.y=d+y;d=1;x=x/10; 判断x是否等于0,若是退出循环,否则执行4
- 7.判断(y==e)是否为真若是返回1;否则返回0;
- 8.定义void PrintN( int m, int n )函数 定义i一个整数变量
- 9.进入循环for(i=m+1;i<n;i++) 判断(narcissistic(i))是否为真
- 10.若是输出i的值并换行
3.本题调试过程碰到问题及PTA提交列表情况说明。
遇到问题
1.首先是如何判断输入的数的位数,后来想到用number/10,然后定义一个q来计数
2.当计算出输入的数的各位数的和之后就,来比较原来的输入的值的大小时,发现
number的值已经发生改变,无法进行判断所以必须定义一个变量来存储原来number
的值,再用来判断。
3.第二个函数在一个小细节就是循环条件中i=m+没有注意到,因为m已经判断过所以
不必在进入循环。
题目3:7-1 求组合数
1. 本题PTA提交列表
2. 设计思路
- 1.函数声明 double fact(int n);
- 2.定义m n c三个整数变量
- 3.输入m n的值
- 4.c=fact(n)/(fact(m)*fact(n-m));
- 5.输出c的值
- 6.定义函数double fact(int n)
- 7.定义i整数变量及ans=1的double型变量
- 8.进入循环for(i=1;i<=n;i++)
- 9.ans*=i;
- 10.判断i是否小于等于n,若是执行8否则跳出循环
3.本题调试过程碰到问题及PTA提交列表情况说明。
遇到问题
1.这题设计思路比较简单就是定义变量时不懂为什么要用double来定义
,后来写出程序后答案总是错误,经过舍友提醒知道应为int的数长度比
较短,且这个程序中的数较大所以不能用int。
二、同学代码结对互评
1.同学互评照片。
2.我的代码、互评同学代码截图
我的代码
徐宏伟的代码
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
首先不同之处是判断输入的数的位数,我用的是for循环,而宏伟用的是do while ,我觉的宏伟的用的好.因为当输入的数为0
时我的做法就无法做出位数为1的情况而他的可以,虽然在这题中我的做法可以但是遇到别的题就不一定了、
还有就是我在计算各位数的和时用的是while(x)而他是用for(i=1;i<=count;i++)用判断出来的位数来限制执行的次数,而我直
接用x/=10,我觉得我的方法好因为这样部不必使用上个语句,且while的语法也较简洁。
三、截图本周题目集的PTA最后排名。
四、本周学习总结
1.你学会了什么?
1.1 C语言哪些数据类型?
整型 short,int,long ,unsigned long ,short, unsigned short
实型 float,double
字符型 char
1.2 字符型数据需要注意地方?
1.不仅可以写成字符常量的形式,也可以用相应的ASSCII码表示,即可用整数表示。
2.可以参加运算,想整数型变量一样
3.在使用字符型变量时记住加上单引号
1.3 自增自减运算符?
.注意符号在前在后的问题,在前在后变量均变化,但是在前的话表达式变化,在后不变
1.4 运算符优先级?
优先级不同则按优先级从高到低计算,如果操作数两侧的运算符优先级相同,则按结合方向决定计算顺序
运算符优先级从高到低排列:逻辑运算符、算术运算符、关系运算符、逻辑运算符、条件表达式、赋值运算符、逗号运算符
1.5 C语言哪些表达式?课堂派哪里做错,做错的请在这里分析原因?
已知字母A的ASCII码为十进制数65,且ch为字符型变量,则执行语句ch='A'+'6'-'3';后,ch中的值为__
A、D
B、68
C、C
D、不确定
我选A答案是B 原因:我以为计算起来也要是字符所以选A
若x为浮点型,则表达式x=10/4为( )
A、2.5
B、2.0
C、2
D、3
我选A 答案是B 因为计算出来是2 因为10/4是整形我误以为是直接得出2.5
1.6 其他内容?
无
2.本周的内容,你还不会什么?
这周内容基本掌握了 不会就是数据类型掌握不好,位运算不太了解 ,函数的语法基本可以掌握,就是2
进制方面还要继续努力。
3.循环结构考试总结
1.哪题做错了,怎么改?
1.第四第五题我做错了
2.原因:第四题是我在看题目时看到18在32位机器中表达为11000,而我用2进制算了下不对呀是10010,
我当时就蒙了,(老师是不是题目出错了呀)直接跳过跳到第五题,我也思考了一会,做了出来 ,但是就
是一个细节最后的一个条件一直过不了,我用了好几种方法还是一样。一直都是21分无法得到25,就只因
为一个小细节。导致想了半节课,第四题也忘记做了
3.改正:第四题回宿舍后了解题目后直接就一遍做了出来,第五题我是会宿舍后于舍友讨论才得出的答案
因为舍友一样也是这里的问题、
2.考试结果满意么,怎么改进?
不满意,因为这些题目都是做过的,但是在考试中却不能完美的做出。
我觉以后做题还是要继续努力,对于一些小问题要重视,特别是题目也要学会审题理解。对于这次考试中遇到的问题继续改正
加大题目量,加强寻找失误的能力,调试程序的能力。
3其他总结。
无