• 第六周作业


    这个作业属于哪个课程 C语言程序设计II
    这个作业要求在哪里 2019春季第六周作业
    我在这个课程的目标 能自己创造对于生活有用的代码
    这个作业在哪个具体方面帮助我实现目标 主要还是提升自己的思维能力
    参考文献 C语言程序设计以及百度

    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

    1)实验代码

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

    2)设计思路

    3)本次调试过程中遇到的问题及解决方案

    在最后没有把结果返回,应该在后面加个return y;

    4)运行结果截图

    7-1 利用指针返回多个函数值 (30 分)读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。
    输入格式:
    输入有两行:
    第一行是n值;
    第二行是n个数。
    输出格式:
    输出最大值和最小值。
    输入样例:
    在这里给出一组输入。例如:
    5
    8 9 12 0 3

    输出样例:
    在这里给出相应的输出。例如:
    max = 12
    min = 0

    1)实验代码

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

    2)设计思路

    3)本次调试过程中遇到的问题及解决方案

    输出的时候等号两边没加空格,应该要加上空格。
    4)运行结果截图

    6-3 最小数放前最大数放后 (10 分)为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。。
    函数接口定义:
    void input(int *arr,int n);
    void max_min(int *arr,int n);
    void output(int *arr,int n);

    三个函数中的 arr和n 都是用户传入的参数。n 是元素个数。
    input函数的功能是输入 n个元素存到指针arr所指向的一维数组中。
    max_min函数的功能是求指针arr所指向的一维数组中的最大值和最小值,其中最小的数与第一个数对换,将最大的数与最后一个数对换。
    output函数的功能是在一行中输出数组元素,每个元素输出占3列。
    裁判测试程序样例:

    include<stdio.h>

    void input(int *arr,int n);
    void max_min(int *arr,int n);
    void output(int *arr,int n);
    int main()
    { int a[10];
    input(a,10);
    max_min(a,10);
    output(a,10);
    return 0;
    }

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

    输入样例:
    5 1 4 8 2 3 9 5 12 7

    输出样例:
    1 5 4 8 2 3 9 5 7 12

    1)实验代码

    void input(int *arr,int n)
    {
    	int i;
    	for(i=0;i<n;i++){
          scanf("%d",&arr[i]);
        }
    }
    void max_min(int *arr,int n)
    {
    	int i, max, min, h, j;
      for(i=0;i<n;i++){
        	if(arr[h]>arr[i]){
        		h=i;
    		}
    	}
    	min=arr[0];
      arr[0]=arr[h];
    	arr[h]=min;  
    	for(i=0;i<n;i++){
    	    if(arr[j]<arr[i]){
    	    	j=i;
    	    }
        }
    	max=arr[n-1];
    	arr[n-1]=arr[j];
      arr[j]=max;
    }
    void output(int *arr,int n)
    {
    	int i;
        for(i=0;i<n;i++){
    	  printf("%3d",arr[i]);
        }
    }
    

    2)设计思路

    3)本次调试过程中遇到的问题及解决方案

    最后的输出把%打成了&。属于手误。
    4)运行结果截图

    思考题
    为什么要使用指针?它有什么用?
    指针有利于大块数据的管理,但也更危险。特别是已经存在于内存中的数据,通过指针访问更方便。利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。
    指针变量在内存中占用多大空间?它的大小由什么决定?
    指针大小是由当前CPU运行模式的寻址位数决定。书上说指针大小和机器字长相同,即32位机指针长度为4字节。但是在网上有很多种不同的结果。
    学习进度条

    本周所花时间 代码行数 学到的知识点 目前比较疑惑的问题
    第一周 一天 50 关于数组的使用 数组的定义和使用还不是很了解
    第二周 一天 60 对于指针的了解和使用 基本上还好
    第三周 一天 100 关于对数组更深刻的理解 对于这类问题还不知道怎么解决
    第四周 两天 200 如何对数组中的元素进行排序 不能完全靠着思维打代码有些地方不知道怎么用代码表示
    第五周 两天 199 了解到更多关于数组的使用 对于数组的使用还不太了解
    第六周 两天 75 对于指针有了初步的了解 还没有完全掌握指针这个知识点,不知道指针该什么时候用

    结对编程:优点:可以更快更好地完成作业,也可以更快速更好的解决问题。
    缺点:存在偷懒现象,只靠队友,自己不努力。

  • 相关阅读:
    修改 jenkins 主目录
    pom中Maven插件 配置 maven-dependency-plugin maven-surefire-plugin
    Oracle解决ora-01653 无法通过1024扩展
    windows 定时备份linux 上oracle 数据库
    oracle drop 表后 恢复
    jenkins 安装
    关于RedHat Linux无法使用yum命令安装gcc-c++问题
    eolinker 安装时遇到的坑
    mysql linux安装教程
    JWT ajax java spingmvc 简洁教程
  • 原文地址:https://www.cnblogs.com/hltltp/p/10658354.html
Copyright © 2020-2023  润新知