• 二、PTA实验作业(函数)


    题目一:

    1.本题PTA提交列表:

     2.设计思路(包括流程图),主要描述题目算法

        //由题目,设计思路如下

         1.该题目可以将一个公式拆分为三个子函数

         2.声明一个fact()子函数用于求分子n!;然后多次调用这个函数

         3.最后在主函数中调用三次函数组合成一个公式就可的到最终的结果

         4.流程图如下:

         最终的代码如下:

    #include<stdio.h>
    double fact(int i);
    main()
    {
    	int i,n,m,N,M,B,result;
    	scanf("%d %d",&m,&n);
    	N=fact(n);
    	M=fact(m);
    	B=fact(n-m);
    	result=N/(B*M);
    	printf("result = %d",result);
    	
    	
    }
    double fact(int i)
    {
    	int j,s=1;
    	for(j=1;j<=i;j++)
    		s=s*j;
    	return s;
    }
    

      

    3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试,如何解决问题,PTA提交的列表中的每一个错误详细说明为什么及如何解决)

            编译上传之后出现部分错误,多次修改之后还是有错误,与同学对比,也没有结果,便不了了之

    题目二:

    1.本题PTA提交列表:

     2.设计思路(包括流程图),主要描述题目算法

          //由题目,设计思路如下

          1.利用for()循环语句和数学公式sqrt(),先声明一个函数用于求2的指数幂之和

          2.在主函数中需要定义整型变量n,result;

          3.输入n的值,并且把n的值传递给子函数

          4.最后根据题目要求输出子函数返回的值

          5.流程图如下:

          最终的代码如下:

    #include<stdio.h>
    #include<math.h> 
    double fact(int i);
    main()
    {
        int i,j,k,result=0;
        scanf("%d",&i);
        for(j=1;j<=i;j++){
            k=pow(2,j);
            result+=k;
        }
        printf("result = %d",result);    
    }
    double fact(int i)
    {
        int s;
        s=pow(2,i);
        return s;
    }

    3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试,如何解决问题,PTA提交的列表中的每一个错误详细说明为什么及如何解决)

         一开始忘记参照题目格式,出现格式错误,后来修改之后,便正确了

    题目三:

      1.本题PTA提交列表:

    2.设计思路(包括流程图),主要描述题目算法

        //由题目,设计思路如下

         1.该题目可以将一个公式拆分为两个子函数

         2.声明一个sushu()子函数用于判断素数,另外一个用来控制循环

         3.最后在主函数中函数

         4.流程图如下:

         最终的代码如下:

    #include<stdio.h>
    #include<math.h>
    int ss(int m)
    {
        int i,k;
        if(m==1)
            return 0;
       k=(int)sqrt(m);
       for(i=2;i<=k;i++)
          if(m%i==0)
             break;
       if(i>k)
           return 1;
       else
           return 0;
    }
    main()
    {
        int N,m,x;
        int a[10];
        scanf("%d",&N);
        for(m=0;m<N;m++){
            scanf("%d",&a[m]);
            }
        for(m=0;m<N;m++)
        {
            x=a[m];
            x=ss(x);
            if(x==1)
             printf("Yes
    ");
            else if(x==0)
            printf("No
    ");
        }
    }

    3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试,如何解决问题,PTA提交的列表中的每一个错误详细说明为什么及如何解决)

    在第一次编写之后,总是运行不出正确答案,后来发现,自己粗心,把1当做素数来判断,导致出现问题,后加以修改,便成功的出所要的语句。

    二、同学代码互评

       1.我的代码:

    #include<stdio.h>
    #include<math.h>
    int ss(int m)
    {
        int i,k;
        if(m==1)
            return 0;
       k=(int)sqrt(m);
       for(i=2;i<=k;i++)
          if(m%i==0)
             break;
       if(i>k)
           return 1;
       else
           return 0;
    }
    main()
    {
        int N,m,x;
        int a[10];
        scanf("%d",&N);
        for(m=0;m<N;m++){
            scanf("%d",&a[m]);
            }
        for(m=0;m<N;m++)
        {
            x=a[m];
            x=ss(x);
            if(x==1)
             printf("Yes
    ");
            else if(x==0)
            printf("No
    ");
        }
    }

       2.同学:李嘉林

          同学的代码:

    #include<stdio.h>
    #include<math.h>
    int sushu(int n)
    {
        int i;
        if(n==1)
        return 0;
        for(i=2;i<=sqrt(n);i++)
        {
            if(n%i==0)
            {
             return 0;
            }
        }
        return 1;
     } 
    
    int main()
    {
        int a,n,i;
        {
        scanf("%d",&a);
        }
        for(i=0;i<a;i++)
        {
        scanf("%d",&n);
        if(sushu(n))
        {
    printf("Yes
    ");
    }
    else printf("No
    ");
    }
    }

       3.我和同学的代码有哪些不同?各自有哪些优势?你更喜欢那种代码的风格?

    李同学的代码更短,也更简单,我思考问题复杂化了,我的更适合新手,比较喜欢她的代码

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

    四、本周学习总结

      1.本周你学会了什么?

       1.本周学会简单的声明一个函数,调用函数;

       2.以及声明函数过程的参数的选择

       3.学会了如何把一个复杂的函数拆分为多个简单的函数 

      2.本周的内容,还有那些内容不会?

       1. 一些较复杂的函数还不会如何声明,比如指数型的函数,对于参数总是容易弄错

  • 相关阅读:
    【bzoj1176】[Balkan2007]Mokia
    【bzoj1503】[NOI2004]郁闷的出纳员
    C#设置和获取系统环境变量
    结伙创业指南及翻脸法则
    Unity3D_(游戏)卡牌03_选关界面
    Unity3D_(游戏)卡牌02_主菜单界面
    Unity3D_(游戏)卡牌01_启动屏界面
    Unity3D_(游戏)跳一跳超简单制作过程
    如何将项目托管到Github上
    Android_(游戏)打飞机06:后续
  • 原文地址:https://www.cnblogs.com/LSCOOLYI/p/8138207.html
Copyright © 2020-2023  润新知