zoukankan      html  css  js  c++  java
  • 第六周总结

    第六周作业
    一、本周作业头

    |这个作业属于哪个课程 | C语言程序设计Ⅱ |

    |这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/computer-scienceclass1-2018/homework/2828|

    |我在这个课程的目标是| 学会指针变量

    |这个作业在那个具体 | 让我学会了如何使用指针

    方面帮助我实现目标

    |参考文献 | 教科书,百度。

    二、基础作业

    6-1 求两数平方根之和 (10 分)

    函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。

    函数接口定义:

    double fun (double *a, double *b);

    其中 a和 b是用户传入的参数。函数求 a指针和b指针所指的两个数的平方根之和,并返回和。

    裁判测试程序样例:

    include<stdio.h>

    include <math.h>

    double fun (double *a, double *b);
    int main ( )
    { double a, b, y;
    scanf ("%lf%lf", &a, &b );
    y=fun(&a, &b); printf ("y=%.2f ", y );
    return 0;
    }

    /* 请在这里填写答案 */

    输入样例:

    12 20

    输出样例:

    y=7.94

    一,实验代码

    #include<stdio.h>
    #include <math.h> 
    double fun (double *a, double *b); 
    int main ( )
    { double a, b, y;
    scanf ("%lf%lf", &a, &b );
     y=fun(&a, &b); printf ("y=%.2f
    ", y );
    return 0;
    }
    double fun (double *a,double *b)
    {
      double y;
      y=sqrt(*a)+sqrt(*b);
      return y; 
    }
    

    二,设计思路

    三,遇见的问题和解决办法

    1,运行出来结果为0.00:

       习惯性最后打了return 0;也不太明白return 0的意义,之后了解到是返回的意思,要求返回和值y,所以将return 0;改为return y; 
    

    四,最后的运行截图

    ![](https://img2018.cnblogs.com/blog/1584166/201904/1584166-20190405211938483-1474286901.png)
    

    7-1 利用指针返回多个函数值 (30 分)

    读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。

    输入格式:

    输入有两行: 第一行是n值; 第二行是n个数。

    输出格式:

    输出最大值和最小值。

    输入样例:

    在这里给出一组输入。例如:

    5

    8 9 12 0 3

    输出样例:

    在这里给出相应的输出。例如:

    max = 12

    min = 0

    一,实验代码

    #include<stdio.h>
    void max_min(int *a,int n,int *max,int *min);
    
    int main()
    {
    	int i,n,max,min;
    	scanf("%d",&n);
    	int a[n];
    	for(i=0;i<n;i++)
    	scanf("%d",&a[i]);
    	max_min(a,n,&max,&min);
    	printf("max = %d
    min = %d",max,min);
    
        return 0;
    }
    void max_min(int *a,int n,int *max,int *min)
    {
    	int max1=*a,min1=*a;
    	int  i;
    	for(i=0;i<n;i++)
    	{
    		if(*(a+i)>max1)
    		max1=*(a+i);
    		if(*(a+i)<min1)
    		min1=*(a+i);
    	 } 
    	 *max=max1;
    	 *min=min1;
    }
    

    二,设计思路

    三,遇见的问题及解决办法

    1,运行结果错误:

    将后面的 *a 改成 *(a+i)

    思考题:
      

    1.为什么要使用指针?它有什么用?

       指针使用比较灵活, 用来存储内存地址,使用时直接提出数据,使效率提高
    

      

    2.指针变量在内存中暂用多大的空间?它的大小由什么决定?

       定义一个变量就会分配一个空间,与类型无关,所占存储空间的大小取决于存储地址值所需的字节数
    

    学习进度:

    结对编程

    优点:

     在讨论中学习知识,不会就查找资料
    

    缺点:

     容易产生分歧,对于题目有不同的理解
  • 相关阅读:
    基于term vector深入探查数据
    oracle 行转列
    oracle 统计成绩
    最全最新个税计算公式---今天你税了吗?
    .net反混淆脱壳工具de4dot的使用
    使用ILSpy软件反编译.Net应用程序的方法及注意事项
    EmguCV使用Stitcher类来拼接图像
    从睡姿就可以看出你的性格,据说非常准,快存!
    分享几个.NET WinForm开源组件,纪念逐渐远去的WinForm。。。
    【转载】关于.NET下开源及商业图像处理(PSD)组件
  • 原文地址:https://www.cnblogs.com/xia-unun/p/10660305.html
Copyright © 2011-2022 走看看