这个作业属于那个课程 | C语言程序设计ll |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2888 |
我在这个课程的目标是 | 了解指针的作用 |
参考文献 | 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\n", y );
return 0;
}
/* 请在这里填写答案 */
输入样例:
12 20
输出样例:
y=7.94
实验代码:
double fun (double *a, double *b)
{
double n;
n=sqrt(*a)+sqrt(*b);
return n;
}
设计思路:
本题遇到的困难及解决办法
没有遇到困难
运行截图
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(void)
{
int n,*pmax,*pmin,max,min,i;
scanf("%d\n",&n);
int a[n];
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
max_min(a,n,&max,&min);
printf("max = %d\nmin = %d",max,min);
return 0;
}
void max_min(int a[], int n, int *pmax, int *pmin)
{
int j;
*pmax=a[0];
for(j=0;j<n;j++){
if(*pmax<=a[j]){
*pmax=a[j];
}
}
*pmin=a[0];
for(j=0;j<n;j++){
if(*pmin>a[j]){
*pmin=a[j];
}
}
}
设计思路
本题遇到的困难及解决办法
对指针的使用和对指针的赋值都不太熟练,通过对照书上的例题完成了此题、
运行截图
思考题
1.为什么要使用指针?它有什么用?
指针的使用比较灵活,在数据的传递时可以使用指针传递地址节省大量的内存。可以用来做数据类型转化。可以根据不同的命令执行不同的命令。在数据结构中,大量应用都离不开指针。 使用指针来读取数据,在重复性操作的状况下,可以明显改善程序性能。
2.指针变量在内存中暂用多大的空间?它的大小由什么决定?
不同类型数据指针变量所占的字节是一样的都是4个字节,因为存储的是内存地址。指针大小是由当前CPU运行模式的寻址位数决定!
挑战题
思路 先了解联通元素如何判断,再进行输出
结对编程
结对编程的优点
1.碰到问题可以进行讨论,合力解决
2.可以提升双方友谊
3.大大提高编程效率
学习感悟
本周学习了指针的运用,了解到指针的重要作用。但对指针的使用还不够熟练,需要多加练习。