c语言第五次博客作业---函数

一丶PTA实验作业

题目1:使用函数判断完全平方数

(1).PTA提交列表

(2). 设计思路

1.第一步:定义两个浮点型变量 number,r;
2.第二步:将开平方的n赋予number;
3.第三步:r=n/number;
4.第四步:如果r=number,返回1;否则返回0;
5.第五步:如果n为0,返回1;

(3).本题调试过程碰到问题及解决办法

问题:
在n=0这个测试点时代码通不过去

解决办法:将0当作特例写出来,当n为0时直接返回1;

题目2:使用函数输出一个整数的逆序数

(1).PTA提交列表

(2). 设计思路

1.第一步:定义两个整型变量 r,a;
2.第二步:若number不等于0,进入第三步,否则进入第六步;
3.第三步:r=number%10;
4.第四步:a=a*10+r;
5.第五步:number=number/10;返回第二步;
6.第六步:返回a;

(3).本题调试过程碰到问题及解决办法

问题:

发现编译后无法运行

解决办法:

调试后发现进入了死循环,number的值不改变,仔细阅读后发现number的数值未除十导致number值始终不改变

题目3:使用函数输出水仙花数

(1).PTA提交列表

(2). 设计思路

1.第一步:定义整型变量 r,i,a,sum,n,b,j,c;
2.第二步:将number的值赋予b,c
3.第三步:while(number不等于0){
4.第四步:r=number/10;
5.第五步:将r的值赋予number;
6.第六步:n=n+1;}
7.第七步:for(i=1;i小于等于n;i=i+1){
8.第八步:j=b%10;
9.第九步:b=b/10;
10.第十步:sum=sum+j的n次方;
11.第十一步:如果sum等于c,则返回1,否则返回0;
12.第十二步:定义另一个函数Print( int m, int n )
13.第十三步:for(j=m+1;j<n;j++){
14.第十四步:如果j满足第一步到第十二步,输出j

(3).本题调试过程碰到问题及解决办法

问题:

输入数据后无法运行

解决办法:

阅读后发现循环内变量写错,询问舍友后由于第二个函数需要用第一个函数进行判断,可以在第二个函数内调用第一个函数,这样就可以减少定义变量照成冲突

二、同学代码结对互评

1.同学互评照片

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

我的代码:

同学代码:

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

  • 不同在于他的代码是用多个循环去控制数据做出递增递减,而我是用求余在10累加,这样每次10就能使最高位不断向前推
  • 他的优势是思路很清晰,而且容易懂,我的做法比较特别,但是很精简,但是我犯了一个错误,a没有给他一个初始值,这是他帮我检查的一个错误,还的多练练自己的找错能力,尽量使代码严谨一些

三、截图本周题目集的PTA最后排名

四、本周学习总结

1.你学会了什么?

(1).浮点型,字符型
(2).字符型可以转换成ASCII码,用+-1可以让字符进行转化
(3).前缀递增与后缀递增的区别

2.本周的内容,你还不会什么?

(1).关系表达式还不是很理解
(2).移位运算以及符合运算符表达式
(3).逻辑表达式

3.循环结构考试总结

做错题目:7—2

  • 对于输出图形的题目还不是很清楚,刚看到题目时脑子一片空白
  • 一步一步思考后逐渐将代码写出并完善但是在pta上还是过不去
    错误代码
int main(void)
{
    char c,i,j;
    int n;
    scanf("%d",&n);
    c='A';
    for(i=n;i>=0;i--){
    	for(j=1;j<=n;j++){
    		printf("%c ",c);
    		c=c+1;
		}
    	n--;
    	printf("\n");
	}
	return 0;
  • 再循环内的控制条件未想透彻,导致格式一直错误,最终询问老师才发现,找错改错能力还不足
posted @ 2017-11-18 23:07  three。g  阅读(258)  评论(5编辑  收藏  举报