这个作业属于哪个课程 C语言程序设计2
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2888
我的课程目标 运用指针
这个作业在哪个具体方面帮助我实现目标 用指针解决问题
参考文献 https://wenku.baidu.com/view/f4ea4338bf23482fb4daa58da0116c175f0e1ec5.html

第一题

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

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

(2)代码

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

思路

(4)运行结果截图

(3)本题调试过程中碰到问题及解决方法

本题比较简单,调试过程中没有遇到任何问题

第二题

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

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

代码

#include<stdio.h>
#include<string.h>
void max_min(int *max,int *min);
int main()
{
  int max,min; 
  max_min(&max,&min);
  printf("max = %d\nmin = %d",max,min);
  return 0;
}
void max_min(int *max,int *min)
{  
  int i,n;
  int a[100];
  scanf("%d",&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];
  }
}

思路

(3)本题调试过程中碰到问题及解决方法

原先在主函数中输入
这样怎用都显示错误
后来我直接在主函数中输入和判断就行了

(4)运行结果截图

预习题

6-3 最小数放前最大数放后 (10 分)

为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素

代码

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;
    int x,y,z;
    max=arr[0];
    min=arr[0];
    for(i=1;i<n;i++){
      if(max<arr[i]){
          max = arr[i];
          x = i;
           }
      if(min>arr[i]){
          min= arr[i];
          y=i;
          }
      }
        z=arr[0];
        arr[0]=arr[y];
        arr[y]=z;
       z=arr[n-1];
       arr[n-1]=arr[x];
       arr[x]=z;
    } 
 void output(int *arr,int n)
 {
        int i;
        for(i = 0;i < n; i++)
        printf("%3d", arr[i]);
 } 

思路


这个题写过,就是改为用指针了

学习进度条

周/日期 这周所花时间 代码行数 学到知识点 目前比较迷惑的问题
4/1-4/5 一下午 67 指针和函数 指针的运用

5学习感悟

地址和指针是计算机中的两个重要概念,在程序运行过程中,变量或者程序代码被储存在以字节为单位组织的存储器中。在C语言中,如果定义了一个变量,在编译时就会根据该变量的类型给它分配相应大小的内存单元。指针声明符在定义指针时被使用,说明被定义的那个变量是指针。定义多个指针变量时,每一个指针变量前面都必须加上。

六、结对编程感想

有学习的氛围对我的学习有很大的帮助,在一写问题上也可以互相讨论