2019春第六周编程总结

这个作业属于哪个课程C语言程序设计Ⅱ
这个作业要求在哪里https://edu.cnblogs.com/campus/zswxy/MS/homework/2829
我在这个课程的目标是利用指针知识解决相关实际问题
在具体哪方面帮我实现目标设计密码开锁、交换变量解决问题以及电码加密
参考文献C语言基础、http://www.w3school.com.cn/html/html_forms.asp

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

实验代码:

#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;
}
double fun(double *a,double *b)
{
double sum;
sum=sqrt(*a)+sqrt(*b);
return sum;

设计思路:
1580382-20190405182753550-916300768.png
遇到的问题及解决办法:
此题比较顺利,没遇到什么问题。
运行结果截图:
1580382-20190405182922593-1659506053.png

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

设计思路:
1580382-20190405190312099-935692212.png
遇到问题及解决办法:
在调用max_min函数时遇到瓶颈,后面查阅百度了解了相关知识。
运行结果截图:
1580382-20190405190503771-954999440.png
预习题:
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

实验代码:

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

设计思路:
1580382-20190405194242249-1064671114.png
遇到问题及解决办法:
在反复调用fo循环以及if语句时出错了,将sum、i、及中间变量t的值搞混淆了,最后问同学,了解了问题所在,并帮助我解决问题。
运行结果截图:
1580382-20190405194444368-66449385.png
思考题:
1.为什么要使用指针?它有什么用?
2.指针变量在内存中暂用多大的空间?它的大小由什么决定?
答:
1:

指针在很多情况可以用到。如 将一个结构体传递给一个函数。如果不用指针,传送速度慢,如果通过指针,只要传递一个地址。

作用:

1)直接操作内存,程序效率更高;
2)可以写复杂度更高的数据结构,程序员可以操作内存,也可以写出灵活、复杂的数据结构;
3)编写出简洁、紧凑、高效的程序。

2:

指针只是一个地址,在汇编后都是一个32位的内存地址(32位系统),
指针变量本身所占存储空间的大小取决于存储地址值所需的字节数 。

学习进度表:

日期总代码行数博客字数(个)所花时间知识点
03/03397814hour查找整数(函数章节)
03/09416805hour数组,文件
03/18455803hour数组、指针
03/2226+42+24=927206hour数组的综合运用
03/2935+22=577907hour数组、指针
04/0517+38+52=1076506hour指针、数组、函数等

1580382-20190405195510788-1023108016.png

学习感悟:
本周系统的学习了指针的相关内容,并利用其解决实际问题,
对于如何画好流程图有了较好的认知;
我觉得本周的难点是变量的初始化以及使用指针作为函数的参数的运用。还将继续学习指针的相关知识,能够熟练的运用指针的知识解决实际问题。

转载于:https://www.cnblogs.com/ImportantMagic/p/10659731.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

昨天7月21号,笑笑又生病了

21号从上午就开始发烧,中午吃了安瑞克烧退了,但是下午6点左右又开始发烧了,再次吃安瑞克,效果不是太好,还是烧,睡了觉之后烧退了。晚上十点又开始发烧&#xff0c;吃美林悬浮液烧还是没退&#xff0c;又吃安瑞克&#xff0c;还是烧&#xff0c;到了一点钟,烧,但稍微好一点 22号…

Exchange企业实战技巧(26)在Outlook中打开多个邮箱

工作中&#xff0c;有时要需要让某个用户在outlook中同时打开多个exchange邮箱&#xff0c;对于outlook2010来说&#xff0c;是支持多个Exchange邮箱用户账户的并存&#xff0c;而outlook2007则不支持。那该功能有没其他实现方法呢&#xff1f;答案是有的。 如果你的Exchange是…

sql 为什么要用where 1=1或者where 1 =0 ?

一、不用where 11 在多条件查询中的困扰   举个例子&#xff0c;如果您做查询页面&#xff0c;并且&#xff0c;可查询的选项有多个&#xff0c;同时&#xff0c;还让用户自行选择并输入查询关键词&#xff0c;那么&#xff0c;按平时的查询语句的动态构造&#xff0c;代码…

Java元数据总结:Java注释的使用和定义

元数据从metadata一词译来&#xff0c;就是“关于数据的数据”的意思。越来越的开源框架都提供了“元数据”支持了&#xff0c;其实也就是注释支持。今天系统学习一下Java注释(Java元数据)。本文内容不限于Javadoc的注释。  1.什么是Java元数据&#xff0c;有什么作用?  元…

Emulator Error: Could not load OpenGLES emulati...

为什么80%的码农都做不了架构师&#xff1f;>>> 模拟器提示警告&#xff1a;Emulator Error: Could not load OpenGLES emulation library: Could not load DLL! 亲测可用&#xff1a; 从SDK\tools\lib目录下将一下四个dll文件复制到SDK\tools&#xff0c;重启模…

C++中的模板展开问题

在c中使用模板的目的是&#xff1a;减少代码量&#xff0c;相同功能的代码只写一份&#xff0c;根据传入不同的参数&#xff0c;实现相同的功能。 优点&#xff1a;减少了程序开发者的工作 量&#xff0c;只写一份相同功能的代码 缺点&#xff1a;编译器在展开时&#xff0c;每…

请教设计模式大牛们几点

我在做一个3D场景编辑器&#xff0c;假如所有物体从ObjectX而来&#xff0c;现在在此对象层&#xff0c;不知道如何设计出较好的结构来。问题如下&#xff1a; 1&#xff1a;每个物体都可以被单独的设置各种效果——阴影、多重纹理贴图、反射。 也可以设置一些动画&#xff1…

关于.net的垃圾回收和大对象处理_标记

CLR垃圾回收器根据所占空间大小划分对象。大对象和小对象的处理方式有很大区别。比如内存碎片整理 —— 在内存中移动大对象的成本是昂贵的&#xff0c;让我们研究一下垃圾回收器是如何处理大对象的&#xff0c;大对象对程序性能有哪些潜在的影响。 大对象堆和垃圾回收 在.Net …

TiKV 源码解析系列 - Raft 的优化

这篇文章转载TiDB大牛 唐刘 的博客&#xff1a;https://mp.weixin.qq.com/s?__bizMzI3NDIxNTQyOQ&mid2247484544&idx1&sn7d8e412ecc5aaeb3f9b7cf391bdcf398&chksmeb1623eadc61aafcefcfbdf36b388a5f96d3009d21641eb6ac67c57317d6c397ddeb58fc7d06&scene21#…

IE9 Preview 4的CSS3支持。

1、完美支持了box-shadow&#xff0c;无需前缀。【哈哈说曹操曹操到&#xff0c;还剩下text-shadow未支持了。】 2、有了支持CSS3 Gradient的迹象&#xff0c;但是很神奇的是IE9现在支持的是-webkit-gradient的写法&#xff0c;不过尚不支持color-stop。嗯&#xff0c;相信下个…

三篇文章了解 TiDB 技术内幕——说存储

此文转载了 申砾 PingCAP 的文章&#xff1a;https://mp.weixin.qq.com/s?__bizMzI3NDIxNTQyOQ&mid2247484822&idx1&sn5434362800d8dcc0ca69d2f3f3260173&chksmeb1622fcdc61abea428f74b26a24bc589d524dd3b666d9b124809300f488d00b33a315a87792&scene21#we…

复制数组方法总结

为什么80%的码农都做不了架构师&#xff1f;>>> 在java中&#xff0c;对数组复制有多种 1.通过循环来复制 比如用for循环 int a[]{1,2,3}; int b[]new int[a.length]; for(int i0;i<a.length;i){ b[i]a[i]; } 2.直接复制 int a[]{1,2,3}; int b[]a…

JS/Cs相互调用

js调用cs中函数的方法 在前台js代码里写上<%method();%>举例:cs文件中写的有public void method(){....执行某些操作.}这个函数,然后在前台页面的js里面调用.<script type"text/javascript"><%method();%></script>在cs中调用js函数法一:C…

学习进度_第六周

第六周主要就是针对结对开发项目&#xff0c;又赶上清明节假期&#xff0c;所以学习时间打了些折扣。 编程时间&#xff1a;课上3小时课下5小时。 博客1篇。转载于:https://www.cnblogs.com/flw0322/p/10680226.html

PostgreSQL体系架构

PostgreSQL 使用客户机/服务器&#xff08;C/S&#xff09;的模式提供服务&#xff0c;一个PostgreSQL会话由下列相关的进程&#xff08;程序&#xff09;组成&#xff1a; (1)一个服务器端进程。该进程管理数据库文件&#xff0c;接受客户端与数据库的连接&#xff0c;且代表…

地址运算符:

C语言中的指针&#xff0c;是用来存储变量地址。 int i 34; printf("i %d, address %p",i,&i); i 34, address 0x7fff5fbff85c转载于:https://www.cnblogs.com/sell/archive/2012/12/26/2834174.html

做好一个team leader的几点看法

每年给组员做PR的时候&#xff0c;总会谈及职业规划的问题。也总会被被问到怎样何时才可以做一个lead&#xff0c;为什么自己不能做lead&#xff1f;就从别处收集了一些自己也加了一些作为一个指引。但实际在具体操作时&#xff0c;也是每个manager见仁见智的事情&#xff0c;而…

不要总想着二进制

同事转了一道题&#xff1a; 有 100 支一模一样的瓶子&#xff0c;编号 1-100。其中 99 瓶是水&#xff0c;1 瓶是看起来像水的毒药。 只要老鼠喝下一小口毒药&#xff0c;一天后就会死。 现在你有 7 只老鼠和一天时间&#xff0c;怎么检验出哪个号码的瓶子里是毒药&#xff1f…

C语言打包解包文件程序(简易版)

//测试通过 科嵌电子 #include <stdio.h> #include <string.h> #include <stdlib.h> typedef unsigned int uint; typedef unsigned char byte; // 包文件中最大可容纳的文件个数 #define MAX_FILE_COUNT 10 // 全局包…

突然领悟

突然领悟 用google搜索图标&#xff0c;看桌满屏的图标。突然想到 开源狂热者&#xff0c;想到他们大骂ms的情况。当时是可以认可&#xff0c;但不理解为什么。又突然想到自己对思想古板&#xff0c;守旧的人的痛恨。突然之间全明白了。在软件业自己也不只用微软不。自己其实在…