zoukankan      html  css  js  c++  java
  • C语言第五次博客作业函数

    一、PTA实验作业。

    6-5 使用函数输出一个整数的逆序数

    1.本题PTA实验结果

    2.设计思路

    • (1)定义五个整型变量n,count,i,x,sum。
    • (2)赋初值,将进入函数的number赋值给n,sum=0,count=0。
    • (3)统计输入number的位数count。
    • (4)n=n/10,count++。
    • (5)重复步骤4,直到n=0。
    • (6)i=count-1。
    • (7)对number取余x,x=number%10。
    • (8)计算sum=sum+x*pow(10,i)。
    • (9)计算number=number/10。
    • (10)重复步骤7,直到i<0,结束循环。将sum的值返回主函数。

    3.本题调试过程碰到问题及PTA提交列表情况说明。

    • 本题没有遇到问题。

    6-7 使用函数输出指定范围内的完数

    1.本题PTA实验结果

    2.设计思路

    • (1)定义函数factorsum( int number ),输出完数。
    • (2)定义两个整型变量sum=1,i=2。
    • (3)若number%i==0,则sum=sum+i。
    • (4)i++。
    • (5)重复步骤3,直到i>=number,结束循环,将sum的值返回到主函数。
    • (6)定义函数void PrintPN( int m, int n )
    • (7)定义三个整数i=m,j=2,count=0。
    • (8)若factorsum(i)==1,则count++,printf("%d = 1",i)。
    • (9)若i%j==0,printf(" + %d",j),printf("\n")。
    • (10)j++。
    • (11)重复步骤9,直到j>=i,结束循环。
    • (12)i++。
    • (13)重复步骤8,直到i>n,结束循环。
    • (14)if(count==0) printf("No perfect number")。

    3.本题调试过程碰到问题及PTA提交列表情况说明。

    • (1)只输出了一个
    • 解决问题:第一个函数中,将i=1改为i=2,因为任何数对1取余都为0。且将i<=number改为i<number,因为完数不包括自身。同理将第二个函数的j改正。
    • (2)输出的格式错误。
    • 解决方法:添加空格。

    7-1 求组合数

    1.本题PTA实验结果

    2.设计思路

    • (1)定义四个浮点型数x,y,m,n。
    • (2)输入两个浮点数m,n。
    • (3)调用函数fact,y=fact(n-m),m=fact(m),n=fact(n)。
    • (4)计算x=n/(y*m)。
    • (5)输出x(不保留小数)。
    • (6)定义函数double fact(double b)
    • (7)定义两个浮点型i,a=1。
    • (8)for(i=1;i<b;i++) a=a*i。
    • (9)将a的值返回到主函数。

    3.本题调试过程碰到问题及PTA提交列表情况说明。

    • (1)没有使用%.0lf使得答案错误。

    二、同学代码结对互评。

    1.互评同学名称。

    林智超。

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

    6-8
    我的代码

    int fib(int n)
    {
      int a,b,t,i;
      a=b=1;
      for(i=2;i<=n;i++){
      t=a+b;
      a=b;
      b=t;
      } 
      return a;
    }
    void PrintFN(int m,int n){
       int i,j,count=0;
       for(i=1;i<=10000;i++)
       {
        if(fib(i)>=m&&fib(i)<=n)
    	{
           printf("%d",fib(i));
           count++;
           break;}
       }
           for(j=i+1;j<10000;j++){
           	if(fib(j)>=m&&fib(j)<=n)
           printf(" %d",fib(j));
           count++;}
        if(count==0)
        printf("No Fibonacci number\n");
    }
    

    林某代码

    int fib( int n )
    {
    	int i,a,b,c;
    	a=b=1;
    	for(i=2;i<=n;i++){
    	c=a+b; 
    	a=b;
        b=c; 
    }
    	return a;
    }
    void PrintFN( int m, int n )
    {
    	int j,flag=0,u;
    	if(m==1&&n==1)
    	printf("1 1");
    	else{
    	for(j=m;j<=n;j++){
    		for(u=1;u<=n;u++){
    		if(fib(u)>j)
    		break;
    		if(j==fib(u)){
    		flag=1;
    		printf("%d",fib(u));
    		if(fib(u+1)<=n)
    		printf(" ");}
    		}
    	}
    	}
    	if(flag==0&&m!=1&&n!=1)
    	printf("No Fibonacci number");
    }
    
    

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

    • 不同点:对函数void PrintFN( int m, int n )的处理方法不同。
    • 优势:林某的代码巧妙的利用if解决了最后不能有空格的问题,而且整体代码比较简洁可读性高。我的代码比较普通,一步一步来。
    • 我更喜欢林某的。

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

    四、本周学习总结。

    1.你学会了什么?

    1.1 C语言哪些数据类型?

    • 基本数据类型,如:整型,长整型,短整型,无符号整型,无符号长整型,无符号短整型,字符型,单精度浮点型,双精度浮点型。

    1.2 字符型数据需要注意地方?

    • 每个字符型数据在内存中占一个字节。
    • 整型变量和字符型变量的定义和值可以互换。

    1.3 自增自减运算符?

    • ++n相当于n=n+1,--n同理。
    • ++n是先执行n=n+1,再将n的值作为表达式++n的值。n++,先将n的值作为表达式n++的值,再执行n++。
    • 运算对象只能是变量,不能是常量或者表达式。

    1.4 运算符优先级?

    • 初等运算符>单目运算符>算术运算符>移位运算符>关系运算符>位逻辑运算符>逻辑运算符>三目运算符>赋值运算符>逗号运算符
    • 单目运算符,赋值运算符,三目运算符和赋值运算是从右到左结合。

    1.5 C语言哪些表达式?课堂派哪里做错,做错的请在这里分析原因?

    • 赋值表达式,逻辑表达式,条件表达式,关系表达式。
    • 无。

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

    • 对一些特殊的数据类型的应用以及运算符优先级还不够熟悉。

    3.循环结构考试总结

    1.哪题做错了,怎么改?

    • 第4和第5没有做出来。在第四题的时候没有弄清题目的意思,对处理进制的转化一时没有理解,导致卡住。

    2.考试结果满意么,怎么改进?

    • 不满意。巩固基础,再多练些代码,提高做题效率和代码的可读性。
  • 相关阅读:
    [轉]windows下mysql 启动 mysqlbinlog二进制日志文件
    [轉]MySQL创建、删除、重建和查看索引命令
    [轉]PHP权限控制系统PHPGACL
    [轉]mysql5存储过程语法
    Web Application Stress Tool(WAS) & SQLIOSim
    information_schema資料庫表信息
    [轉]MySQL系统变量应用探究
    [轉]httping 1.5.2 发布,HTTP连接响应测试
    [轉]批处理命令手册
    Google Native Client介紹
  • 原文地址:https://www.cnblogs.com/oracler0103/p/7852872.html
Copyright © 2011-2022 走看看