第六周作业

第六周作业

本周作业头

这个作业属于哪个课程 C语言程序设计Ⅱ
这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/2825
我在这个课程的目标 指针和地址的概念,指针变量的初始化和调用函数
这个作业在那个具体方面帮助我实现目标 数组与指针的运用

基础作业

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\n", y );
return 0;
}

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

输入样例:

12 20

输出样例:

y=7.94

实验代码:

{
	double i,j,result;
	i=sqrt(*a);
	j=sqrt(*b);
	result=i+j;
	return result;
}

流程图:

运行结果图:

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*pmax,int*pmin);
int main()
{
int n,i,a[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int max,min;
max_min(a,n,&max,&min);
printf("max = %d\n",max);
printf("min = %d\n",min);
}
void max_min(int a[],int n,int*pmax,int*pmin)
{
int i;
*pmax=*pmin=a[0];
for(i=0;i<n;i++)
{
if(*pmax<a[i])
{
*pmax=a[i];
}
else if(*pmin>a[i])
{
*pmin=a[i];
}
}
}

流程图:

运行结果图:

思考题:

1.为什么要使用指针?它有什么用?
写程序需要尽可能少的内存,使用指针型变量在很多时候占用更小的内存空间

2.指针变量在内存中暂用多大的空间?它的大小由什么决定?
指针变量本身所占存储空间的大小取决于存储地址值所需的字节数,这个存储地址值就是一个32位的内存地址值

学习进度条:
周/日期 这周所花时间 学习到的知识点 目前比较迷惑的
3/4-3/9 3小时 文件的读写 文件打开的代码格式
3/9-3/15 4小时 数组的运用 二位数组子数组的最大值的求和
3/16-3/22 3小时 选择排序法 冒泡排序法
3/22-3/29 5小时 二维数组 二维数组与字符串的结合使用
3/29-4/5 4小时 指针与地址 指针与数组的运用

学习感悟:

题目难度开始不断加大,需要更认真的去学习了

posted @ 2019-04-05 22:36  LUcKy_wA  阅读(124)  评论(0编辑  收藏  举报