• 第六周作业


    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/2889
    我在这个课程的目标是 学会运用指针
    这个作业在那个具体方面帮助我实现目标 用指针来解决问题
    参考文献 C语言程序设计II
    一、本周完成的作业
    ==========

    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
    

    2)实验代码

    double fun (double *a, double *b)
    {
    	double y;
    	y=sqrt(*a)+sqrt(*b);
    	
    	return y;
    }
    
    

    3)设计思路

    4)运行结果截图

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

    读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。
    输入格式:
    输入有两行: 第一行是n值; 第二行是n个数。
    输出格式:
    输出最大值和最小值。
    输入样例:
    在这里给出一组输入。例如:

    5
    8 9 12 0 3
    

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

    max = 12
    min = 0
    

    2)实验代码

    #include<stdio.h>
    void max_min(int *p, int n, int *max, int *min);
    int main(void)
    {
      int n, i, 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);
    }
    
    void max_min(int *p, int n, int *max, int *min)
    {
      int a=*p,b=*p;
      for(int i=0;i<n;i++)
      {
        if(*(p+i)>a)
        {
            a=*(p+i);
        }
        if(*(p+i)<b)
        {
            b=*(p+i);
    }
      }
      *max=a;
      *min=b;
    }
    

    3)设计思路

    4)运行结果截图

    思考题:(分值等同于编程题)

      1.为什么要使用指针?它有什么用?
      2.指针变量在内存中占用多大的空间?它的大小由什么决定?

        1:指针是指向一个特定内存地址的一个变量。C语言指针可以有效地表示复杂的数据结构、动态分配内存、高效地使用数组和字符串、使得调用函数时得到多个返回值等。使用指针可以方便的使用字符串,有效的使用数组等。
        2:指针变量在内存中占用的空间与其类型无关,它的大小跟操作系统及编译环境有关。
    

    二:学习进度条

    周/日期 这周所花的时间 代码行数 学到的知识点简介 目前比较困惑的东西
    3/4-3/9 3h 38 文件指针,文件的读写 对文件和数组还不是很理解
    3/9-3/15 5h 75 预习了二维数组 对最大子数组的概念不清楚
    3/16-3/22 4h 97 一维数组:选择排序法、二分查找法;二维数据:定义、引用、初始化,二维数组与矩阵。 不清楚二维数组的具体结构等
    3/23-3/29 6h 80 字符串,字符串的初始化,预习了指针的定义,指针变量的初始化 对字符串的处理还有指针的运用不够了解
    3/30-4/5 5h 50 定义指针变量,指针变量的运用 不是很会运用指针

    三:学习感悟

    这周学习了指针变量的定义,还有如何运用指针变量,指针的运算等。从百度上进一步了解了指针的用处,它的在内存中占用的大小与操作系统及编译环境有关,跟它是什么类型的无关,这周作业中第一题以前做过类似的题目所以没啥问题,第二题也是跟函数有关,运用自定义函数和指针来实现返回多个函数值。

  • 相关阅读:
    动车上的书摘-java对象流与序列化
    动车上的书摘-java网络 连接服务器
    HP-Socket v3.2.2
    古典音乐 (java基础 继承)
    编写高质量代码改善java程序的151个建议——[52-57]String !about String How to use them?
    项目ITP(七) javaWeb 整合 Quartz 实现动态调度 并且 持久化
    HP-JavaUtil: xls 操作类
    [ Talk is Cheap Show me the CODE ] : jQuery Mobile工具栏
    [ Talk is Cheap Show me the CODE ] : jQuery Mobile页面布局
    20140622
  • 原文地址:https://www.cnblogs.com/tqw0728-Mars/p/10659302.html
Copyright © 2020-2023  润新知