pre标签为什么显示的代码很混乱?

用编辑器发送的代码文章,但是显示效果很混乱怎么办?一开始显示的就一行,改了pre标签样式,能够多行,但是很混乱…图片说明

1个回答

每一行宽度都设置大一点,overflow:auto;,一行一个pre这样有一个横向滚动条,原代码显示

MiApe
「已注销」 回复当作看不见: 我所有的代码都在一个pre里,宽度不管设置多少都是一样的,要么就只显示了一行,要么就显示混乱…
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
postman在pre-request Script变量参数中,得出MD5的值需要转为大写,怎么实现
RTpostman在pre-request Script变量参数中,得出MD5的值需要转为大写,怎么实现
jsp页面自动加入pre标签的问题
springmvc 请问这里为什么返回的jsp 自动加上pre 标签了 导致 页面显示文本内容了 ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <% String path = request.getContextPath(); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <style type="text/css"> .login{ border: 1px solid; display: inline-table; } </style> <script type="text/javascript" src="<%=path %>/script/jquery-1.9.1.js"></script> <script type="text/javascript"> $(document).ready(function(){ alert(1) }); </script> ``` F12查看 发现 代码是被pre标签包围的 这不知道为什么了 有人碰到过类似的问题么
复制pre中的内容然后粘贴会把当前的pre标签也粘贴一遍,如何解决?
本来想ctrl+A复制所有的内容 然后粘贴的时候发现pre标签也被复制了...... 图片如下: ![图片说明](https://img-ask.csdn.net/upload/201904/06/1554564873_171447.png) 代码如下: ``` <head> <meta charset="UTF-8"> <title>Title</title> <style> pre{ white-space:pre-wrap; -webkit-user-modify: read-write; height: 6em; overflow: auto; } </style> </head> <body> <pre> </pre> </body> ```
在HTML中使用标签<Pre></pre>时出现的问题
HTML代码如下: ![图片说明](https://img-ask.csdn.net/upload/201503/13/1426230846_736337.png) 以上代码,在后缀名为“HTML”的文件中打开,如图显示: ![图片说明](https://img-ask.csdn.net/upload/201503/13/1426229824_165552.png), 框的顶部会有空白区域,黄色区域不会到框的顶部; 如果把HTML代码上面的”<!DOCTYPE html>“删除, 如图显示:![图片说明](https://img-ask.csdn.net/upload/201503/13/1426229974_821504.png),此时顶部不会出现空白; 在VisualStudio中页面设计中 无论有无“<!DOCTYPE html>”,设计页面都不会出现上面有空白.![图片说明](https://img-ask.csdn.net/upload/201503/13/1426230542_922639.png) ,编译运行后还是会出现上面的情况 请问为什么会出现以上问题,该如何解决?
关于网页内显示源代码问题以JAVA为例
看到很多作成.CHM的帮主文档内置的代码处都能够原样显示JAVA代码,HTML代码等。 是不是在HTML标签中有支持这种格式输出的代码,我说的不是<pre>标签</pre> 在论坛和.CHM的帮助文档中可以高亮显示关键字等。标签等都能解析出来。不知道大家有没有知道是如何实现的。谢谢 [b]问题补充:[/b] 那类是JAVAEYE这种UUB编辑器是不是自己写的呢,还是引用了别人的?
SVN的pre-commit中做代码检测,成功后提交
事情是这样的: 我想实现,在提交代码时,对提交的代码进行编码规范检测,检测通过才能提交成功。 即需要在pre-commit实现检测;检测后面的已经做好。 当前问题是,怎么实现在pre-commit中检测到我的提交代码,并同步更新到我的测试服务器上? 在pre-commit 中只有两个传入参数,路径和事件名,还有一个svnlook命令可以用,感觉自己比较春蠢,不知道怎么做, 求大神拯救,急 急 急 送上全部家当,呜呜,解答。 总结下,就一个问题,怎么将我的提交代码更新到测试服务器上,不同电脑。 SVN服务器在linux上,测试服务器在windows下;需要在svn服务器断检测;客户端在windows上;从客户端提交
求二叉树宽度 大佬帮忙看看我的代码哪里是错在哪里
题目描述 我们定义:二叉树每一层中,节点最多的那层的节点数为二叉树的宽度。 请编写一个程序计算二叉树的宽度。 输入 每行是一棵二叉树的带虚结点(#)表示的前序遍历序串,长度不超过2000。每个结点为一个小写字母或一个数字。 输出 对于每行输入的二叉树,输出该二叉树的宽度,每个结果占一行。 样例输入 # a#bc##f## 样例输出 0 2 提示 第一行输入的为空二叉树,其宽度为零。 #include < stdio.h> #include < stdlib.h> #define OK 1 #define error 0 #define overflow 0 typedef int Status; typedef struct BiTNode{ char data; struct BiTNode *leftchild; struct BiTNode *rightchild; }BiTNode,*BiTree; void InitTree(BiTree *T){ *T=NULL; } int z=0; Status CreateBiTree(BiTree *T,char s[]){ char ch; ch=s[z]; z++; if(ch=='#') *T=NULL; else{ (*T)=(BiTree)malloc(sizeof(BiTNode)); if(!(*T)) exit(overflow); (*T)->data=ch; CreateBiTree(&(*T)->leftchild,s); CreateBiTree(&(*T)->rightchild,s); } return OK; }///这里是建立树 typedef BiTree QElemType; typedef struct QNode{ QElemType content; struct QNode *next; }QNode,*QueuePtr; typedef struct{ QueuePtr front; QueuePtr rear; }LinkQueue; Status InitQueue(LinkQueue *q){ q->front=q->rear=(QueuePtr)malloc(sizeof(QNode)); if(!(q->front)) exit(overflow); q->front->next=NULL; return OK; }//初始化 Status EnQueue(LinkQueue *q,QElemType *T){ QueuePtr p,s; p=(QueuePtr)malloc(sizeof(QNode)); if(!p) exit(overflow); p->content=*T; p->next=NULL; q->rear->next=p; q->rear=p; s=q->front->next; return OK; } Status DeQueue(LinkQueue *q, QElemType *e){ QueuePtr p; if(q->front==q->rear) return error; p=q->front->next; *e=p->content; q->front->next=p->next; if(q->rear==p) q->rear=q->front; free(p); return OK; }//出队 Status GetTop(LinkQueue *q, QElemType *e){ QueuePtr p; if(q->front==q->rear) return error; p=q->front->next; *e=p->content; return OK; }//取栈顶元素 Status IsEmpty(LinkQueue *q){ if(q->front==q->rear) return OK; else return error; }////这里是链式队列的库 Status WidthBiTree(BiTree T){ LinkQueue q; QElemType tmp,p; p=T; int a[20]={0}; a[0]=1; int pre=0,pos=1,end=0; int level=1; EnQueue(&q,&p); end++; while(!IsEmpty(&q)){ DeQueue(&q,&tmp); pre++; if(tmp->leftchild){ EnQueue(&q,&tmp->leftchild); end++; } if(tmp->rightchild){ EnQueue(&q,&tmp->rightchild); end++; } if(pre==pos){ a[level]=end-pos; level++; pos=end; } } int i,max; max=0; for(i=0;i< level;i++){ if(a[i]>max) max=a[i]; } return max; }///求宽度 void PreOrder(BiTree T){ if(T){ printf("%c",T->data); PreOrder(T->leftchild); PreOrder(T->rightchild); } } char s[2000]; int main() { BiTree T; int width,n; scanf("%d",&n); while(n--){ z=0; scanf("%s",s); InitTree(&T); CreateBiTree(&T,s); if(T==NULL) width=0; else{ width=WidthBiTree(T); } printf("%d\n",width); } return 0; } 我的代码调试之后就停在出队函数那里,电脑报错如下 ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577539940_272569.png) 求求大佬帮忙看看
为什么我的zuul配置的拦截器没有生效?
``` public class LoginFilter extends ZuulFilter { @Override // 过滤器的类型 pre route post error public String filterType() { return "pre"; } @Override // 执行顺序,返回值越小,优先级越高,为防止以后有更优先的过滤器,可以先写10 public int filterOrder() { return 0; } @Override // 是否执行该过滤器 public boolean shouldFilter() { return true; } @Override // 编写过滤器的业务逻辑 public Object run() throws ZuulException { // 初始化context上下文对象, 不像以前的 servlet spring RequestContext context = RequestContext.getCurrentContext(); // 获取request对象 HttpServletRequest request = context.getRequest(); // 获取参数 String token = request.getParameter("token"); System.out.println("token="+token); if(StringUtils.isBlank(token)){ // 为空,拦截,不转发请求 context.setSendZuulResponse(false); // 返回状态 成功/失败 context.setResponseStatusCode(401); // 设置响应提示 context.setResponseBody("requset error!"); } return null; // 返回值为null,代表该过滤器什么都不做 } } ``` ++++++++++ yml配置文件 ``` server: port: 10010 spring: application: name: my-zuul zuul: routes: service-provider: # 路由名称,随便写,一般是服务名 path: /service-provider/** # 包含这个路径的,跳转到下面的链接 # url: http://localhost:8086 serviceId: service-provider service-consumer: /c/** host: connect-timeout-millis: 3000 socket-timeout-millis: 3000 prefix: /api # 路由前缀 eureka: client: register-with-eureka: true fetch-registry: true # 这两句, 写成true error:Cannot execute request on any known server # 写成false error:Load balancer does not have available server for client service-url: defaultZone: http://localhost:10086/eureka ribbon: ReadTimeout: 12000 ConnectTimeout: 12000 eureka: enabled: true ``` ![图片说明](https://img-ask.csdn.net/upload/202001/05/1578194627_957484.png) ++++++++ ![图片说明](https://img-ask.csdn.net/upload/202001/05/1578194683_29110.png)
有没有大佬给注释一下代码,挺急的
``` elseif ($action=='export') { //导出CSV $result = mysql_query("select * from aa"); $str = "id,uniprot,url\n"; $str = iconv('utf-8','gb2312',$str); while($row=mysql_fetch_array($result)){ $name = iconv('utf-8','gb2312',$row['id']); $sex = iconv('utf-8','gb2312',$row['uniprot']); $str .= $name.",".$sex.",".$row['url']."\n"; } $filename = date('Ymd').'.csv'; export_csv($filename,$str); } function input_csv($handle) { $out = array (); $n = 0; while ($data = fgetcsv($handle, 10000)) { $num = count($data); for ($i = 0; $i < $num; $i++) { $out[$n][$i] = $data[$i]; } $n++; } return $out; } function export_csv($filename,$data) { header("Content-type:text/csv"); header("Content-Disposition:attachment;filename=".$filename); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header('Expires:0'); header('Pragma:public'); echo $data; } ```
linux上导入1个G的dmp,导出来只有不到5M
在centos7的oracle上创建新用户后,导入了一个1G多的dmp文件,再将这个用户导出时只有几个M ``` [oracle@oracle-test ~]$ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK[oracle@oracle-test ~]$ exp isc/isc@192.168.157.132:1521/orcl file=/disk3/expisc/tisc.dmp owner=isc Export: Release 11.2.0.1.0 - Production on Tue Jan 14 12:36:23 2020 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set About to export specified users ... . exporting pre-schema procedural objects and actions . exporting foreign function library names for user ISC . exporting PUBLIC type synonyms . exporting private type synonyms . exporting object type definitions for user ISC About to export ISC's objects ... . exporting database links . exporting sequence numbers . exporting cluster definitions . about to export ISC's tables via Conventional Path ... . . exporting table HR_ORG_BASIC_INFO 0 rows exported . . exporting table HR_ORG_BASIC_INFO_TEMP 0 rows exported . . exporting table HR_POST_BASIC_INFO 0 rows exported . . exporting table HR_USER_BASIC_INFO 0 rows exported . . exporting table ISC_ACCOUNT 4 rows exported . . exporting table ISC_ACCOUNT_EXT_PROP 0 rows exported . . exporting table ISC_ACTOR_ROLE_R 4362 rows exported . . exporting table ISC_APPLICATION 3 rows exported . . exporting table ISC_APPSHOW_CONF 1 rows exported . . exporting table ISC_APP_CODE_CONF 0 rows exported . . exporting table ISC_APP_CODE_FIELD_EXT 0 rows exported . . exporting table ISC_APP_DATARESOUCE_R 3 rows exported . . exporting table ISC_AUTHORIZE_COMMIT 0 rows exported . . exporting table ISC_BASEORG 8801 rows exported . . exporting table ISC_BASEORG_EXT_PROP 0 rows exported . . exporting table ISC_BASEORG_SPORG_UNIT_R 0 rows exported . . exporting table ISC_COMMON_CONST 196 rows exported . . exporting table ISC_DEPLOY 2 rows exported . . exporting table ISC_DIM 0 rows exported . . exporting table ISC_DUTY 0 rows exported . . exporting table ISC_LOGIN_LOCK 36 rows exported . . exporting table ISC_MAIL_CONF 0 rows exported . . exporting table ISC_MAIL_TEMPLATE_CONF 0 rows exported . . exporting table ISC_MDMORG_SPORG_UNIT_R 0 rows exported . . exporting table ISC_MDM_ORG 0 rows exported . . exporting table ISC_MSG_RESOURCE 0 rows exported . . exporting table ISC_NODE 3 rows exported . . exporting table ISC_NODE_DEPLOY_R 2 rows exported . . exporting table ISC_ORG_ATTRIBUTE 11 rows exported . . exporting table ISC_ORG_SYS_DIM_R 0 rows exported . . exporting table ISC_ORG_UNIT_DIM_R 0 rows exported . . exporting table ISC_RESOURCE 642 rows exported . . exporting table ISC_RESOURCE_EXT_PROPERTY 172 rows exported . . exporting table ISC_RESOURCE_EXT_PROPERTY_ETL 0 rows exported . . exporting table ISC_RESOURCE_TYPE 15 rows exported . . exporting table ISC_RESOURC_TYPE_APPLICATION_R 0 rows exported . . exporting table ISC_RES_EXT_VALUE 3230 rows exported . . exporting table ISC_RES_RES_R 638 rows exported . . exporting table ISC_ROLEGROUP 8 rows exported . . exporting table ISC_ROLE_LAYER_BY_ORG 67 rows exported . . exporting table ISC_ROLE_RES_R 2947 rows exported . . exporting table ISC_SECURE_CONF 2 rows exported . . exporting table ISC_SPECIALORG_UNIT 9 rows exported . . exporting table ISC_SPECIALORG_UNIT_BAK 0 rows exported . . exporting table ISC_SPORG_EXTPROP 0 rows exported . . exporting table ISC_SPORG_EXTPROPVAL 0 rows exported . . exporting table ISC_SPORG_EXTPROP_ATTR_R 0 rows exported . . exporting table ISC_SPROLE 81 rows exported . . exporting table ISC_SPROLE_EXT 0 rows exported . . exporting table ISC_SPROLE_EXT_VALUE 0 rows exported . . exporting table ISC_SPROLE_R 0 rows exported . . exporting table ISC_SP_DOMAIN 3 rows exported . . exporting table ISC_SP_DOMAIN_CODE_RELATION 15 rows exported . . exporting table ISC_SP_ORG_SYSTEM 3 rows exported . . exporting table ISC_STRATEGY_BASEORG_R 0 rows exported . . exporting table ISC_STRATEGY_CONF 0 rows exported . . exporting table ISC_STRATEGY_SESSION 0 rows exported . . exporting table ISC_STRATEGY_USER 0 rows exported . . exporting table ISC_SYNC_LOG 0 rows exported . . exporting table ISC_SYNC_PROCESS 0 rows exported . . exporting table ISC_SYSTEM_START_CONFIG 1 rows exported . . exporting table ISC_TEMP_ACTOR_ROLE_TBL 0 rows exported . . exporting table ISC_TEMP_USER 0 rows exported . . exporting table ISC_TEMP_USER_TBL 0 rows exported . . exporting table ISC_UNIT 27 rows exported . . exporting table ISC_USER 1947 rows exported . . exporting table ISC_USER_CFCA_CONN 0 rows exported . . exporting table ISC_USER_DUTY 0 rows exported . . exporting table ISC_USER_EXT 0 rows exported . . exporting table ISC_USER_EXT_PROPERTY 0 rows exported . . exporting table ISC_USER_EXT_PROP_ERP 0 rows exported . . exporting table ISC_USER_EXT_PROP_VALUE_ERP 0 rows exported . . exporting table ISC_USER_PASSWORDUSEFULDAY 54 rows exported . . exporting table ISC_USER_PASSWORD_REPETITIONS 20 rows exported . . exporting table ISC_USER_SPORG 1557 rows exported . . exporting table ISC_WO_ACCOUNTAPPLY 0 rows exported . . exporting table ISC_WO_ACCOUNT_CHANGE 0 rows exported . . exporting table ISC_WO_APPCONF_CHANGE 0 rows exported . . exporting table ISC_WO_APPROVAL_COMMENTS 0 rows exported . . exporting table ISC_WO_APP_REGISTER 0 rows exported . . exporting table ISC_WO_ORDER 0 rows exported . . exporting table ISC_WO_ROLELIST 0 rows exported . . exporting table ISC_WO_ROLES 0 rows exported . . exporting table OPERATE_OBJ 81 rows exported . . exporting table OPERATE_TYPE 419 rows exported . . exporting table RESOURCE_DEFAULT_PROPERTY 43 rows exported . . exporting table SAS_REPORT_FILES_LOG 0 rows exported . . exporting table SAS_STANDARD_DB_LOG_201301 0 rows exported . . exporting table SAS_STANDARD_LOG_TYPE 5 rows exported . . exporting table SAS_STATISTICAL_RULES 0 rows exported . . exporting table SAS_STATISTICS_DAY_LOGIN_COUNT 44 rows exported . . exporting table SAS_STATISTICS_DAY_LOGIN_USERS 53 rows exported . . exporting table SAS_STATISTICS_SP_VISIT_COUNT 1 rows exported . . exporting table USER_VERIFY 6 rows exported . exporting synonyms . exporting views . exporting stored procedures . exporting operators . exporting referential integrity constraints . exporting triggers . exporting indextypes . exporting bitmap, functional and extensible indexes . exporting posttables actions . exporting materialized views . exporting snapshot logs . exporting job queues . exporting refresh groups and children . exporting dimensions . exporting post-schema procedural objects and actions . exporting statistics Export terminated successfully without warnings. ``` 请问为什么会这样子?
请问一下,为什么我这个排序函数会出现链表末端的数据丢失?
``` void Linklist::rank_in_Chinese() { Node *pre, *beh,*pTemp; pTemp = new Node; pre = pHead; //外循环指针初定义 beh = pre; //内循环指针初定义 while (pre->pNext != NULL) { while (beh->pNext != NULL) { if (beh->Chinese <= beh->pNext->Chinese) { switch_info(pTemp, beh); switch_info(beh, beh->pNext); switch_info(beh->pNext, pTemp); } beh = beh->pNext; } pre = pre->pNext; beh = pre; } cout << "排序成功!" << endl; system("pause"); } ``` 在进行调试后发现链表末端储存的值总是被替换成NULL指针里面的值,这是为什么阿
为什么验证码只显示干扰线不显示数字
![图片说明](https://img-ask.csdn.net/upload/201912/03/1575339269_53630.png) <?php 、 namespace Think; class Verify { protected $config = array( 'seKey' => 'ThinkPHP.CN', // 验证码加密密钥 'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY', // 验证码字符集合 'expire' => 1800, // 验证码过期时间(s) 'useZh' => false, // 使用中文验证码 'zhSet' => ' * 架构方法 设置参数 * @access public * @param array $config 配置参数 */ public function __construct($config=array()){ $this->config = array_merge($this->config, $config); } /** * 使用 $this->name 获取配置 * @access public * @param string $name 配置名称 * @return multitype 配置值 */ public function __get($name) { return $this->config[$name]; } /** * 设置验证码配置 * @access public * @param string $name 配置名称 * @param string $value 配置值 * @return void */ public function __set($name,$value){ if(isset($this->config[$name])) { $this->config[$name] = $value; } } /** * 检查配置 * @access public * @param string $name 配置名称 * @return bool */ public function __isset($name){ return isset($this->config[$name]); } /** * 验证验证码是否正确 * @access public * @param string $code 用户验证码 * @param string $id 验证码标识 * @return bool 用户验证码是否正确 */ public function check($code, $id = '') { $key = $this->authcode($this->seKey).$id; // 验证码不能为空 $secode = session($key); if(empty($code) || empty($secode)) { return false; } // session 过期 if(NOW_TIME - $secode['verify_time'] > $this->expire) { session($key, null); return false; } if($this->authcode(strtoupper($code)) == $secode['verify_code']) { $this->reset && session($key, null); return true; } return false; } /** * 输出验证码并把验证码的值保存的session中 * 验证码保存到session的格式为: array('verify_code' => '验证码值', 'verify_time' => '验证码创建时间'); * @access public * @param string $id 要生成验证码的标识 * @return void */ public function entry($id = '',$fag=null) { // 图片宽(px) $this->imageW || $this->imageW = $this->length*$this->fontSize*1.5 + $this->length*$this->fontSize/2; // 图片高(px) $this->imageH || $this->imageH = $this->fontSize * 2.5; // 建立一幅 $this->imageW x $this->imageH 的图像 $this->_image = imagecreate($this->imageW, $this->imageH); // 设置背景 imagecolorallocate($this->_image, $this->bg[0], $this->bg[1], $this->bg[2]); // 验证码字体随机颜色 $this->_color = imagecolorallocate($this->_image, mt_rand(1,150), mt_rand(1,150), mt_rand(1,150)); // 验证码使用随机字体 $ttfPath = dirname(__FILE__) . '/Verify/' . ($this->useZh ? 'zhttfs' : 'ttfs') . '/'; if(empty($this->fontttf)){ $dir = dir($ttfPath); $ttfs = array(); while (false !== ($file = $dir->read())) { if($file[0] != '.' && substr($file, -4) == '.ttf') { $ttfs[] = $file; } } $dir->close(); $this->fontttf = $ttfs[array_rand($ttfs)]; } $this->fontttf = $ttfPath . $this->fontttf; if($this->useImgBg) { $this->_background(); } if ($this->useNoise) { // 绘杂点 $this->_writeNoise(); } if ($this->useCurve) { // 绘干扰线 $this->_writeCurve(); } // 绘验证码 $code = array(); // 验证码 $codeNX = 0; // 验证码第N个字符的左边距 if($this->useZh){ // 中文验证码 for ($i = 0; $i<$this->length; $i++) { $code[$i] = iconv_substr($this->zhSet,floor(mt_rand(0,mb_strlen($this->zhSet,'utf-8')-1)),1,'utf-8'); imagettftext($this->_image, $this->fontSize, mt_rand(-40, 40), $this->fontSize*($i+1)*1.5, $this->fontSize + mt_rand(10, 20), $this->_color, $this->fontttf, $code[$i]); } }else{ for ($i = 0; $i<$this->length; $i++) { $code[$i] = $this->codeSet[mt_rand(0, strlen($this->codeSet)-1)]; $codeNX += mt_rand($this->fontSize*1.2, $this->fontSize*1.6); imagettftext($this->_image, $this->fontSize, mt_rand(-40, 40), $codeNX, $this->fontSize*1.6, $this->_color, $this->fontttf, $code[$i]); } } // 保存验证码 $key = $this->authcode($this->seKey); $code2 = $code ; $code = $this->authcode(strtoupper(implode('', $code))); $secode = array(); $secode['verify_code'] = $code; // 把校验码保存到session $secode['verify_time'] = NOW_TIME; // 验证码创建时间 session($key.$id, $secode); header('Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); header("content-type: image/png"); if($fag)return $code2; // 输出图像 imagepng($this->_image); imagedestroy($this->_image); } /** * 画一条由两条连在一起构成的随机正弦函数曲线作干扰线(你可以改成更帅的曲线函数) * * 高中的数学公式咋都忘了涅,写出来 * 正弦型函数解析式:y=Asin(ωx+φ)+b * 各常数值对函数图像的影响: * A:决定峰值(即纵向拉伸压缩的倍数) * b:表示波形在Y轴的位置关系或纵向移动距离(上加下减) * φ:决定波形与X轴位置关系或横向移动距离(左加右减) * ω:决定周期(最小正周期T=2π/∣ω∣) * */ private function _writeCurve() { $px = $py = 0; // 曲线前部分 $A = mt_rand(1, $this->imageH/2); // 振幅 $b = mt_rand(-$this->imageH/4, $this->imageH/4); // Y轴方向偏移量 $f = mt_rand(-$this->imageH/4, $this->imageH/4); // X轴方向偏移量 $T = mt_rand($this->imageH, $this->imageW*2); // 周期 $w = (2* M_PI)/$T; $px1 = 0; // 曲线横坐标起始位置 $px2 = mt_rand($this->imageW/2, $this->imageW * 0.8); // 曲线横坐标结束位置 for ($px=$px1; $px<=$px2; $px = $px + 1) { if ($w!=0) { $py = $A * sin($w*$px + $f)+ $b + $this->imageH/2; // y = Asin(ωx+φ) + b $i = (int) ($this->fontSize/5); while ($i > 0) { imagesetpixel($this->_image, $px + $i , $py + $i, $this->_color); // 这里(while)循环画像素点比imagettftext和imagestring用字体大小一次画出(不用这while循环)性能要好很多 $i--; } } } // 曲线后部分 $A = mt_rand(1, $this->imageH/2); // 振幅 $f = mt_rand(-$this->imageH/4, $this->imageH/4); // X轴方向偏移量 $T = mt_rand($this->imageH, $this->imageW*2); // 周期 $w = (2* M_PI)/$T; $b = $py - $A * sin($w*$px + $f) - $this->imageH/2; $px1 = $px2; $px2 = $this->imageW; for ($px=$px1; $px<=$px2; $px=$px+ 1) { if ($w!=0) { $py = $A * sin($w*$px + $f)+ $b + $this->imageH/2; // y = Asin(ωx+φ) + b $i = (int) ($this->fontSize/5); while ($i > 0) { imagesetpixel($this->_image, $px + $i, $py + $i, $this->_color); $i--; } } } } /** * 画杂点 * 往图片上写不同颜色的字母或数字 */ private function _writeNoise() { $codeSet = '2345678abcdefhijkmnpqrstuvwxyz'; for($i = 0; $i < 10; $i++){ //杂点颜色 $noiseColor = imagecolorallocate($this->_image, mt_rand(150,225), mt_rand(150,225), mt_rand(150,225)); for($j = 0; $j < 5; $j++) { // 绘杂点 imagestring($this->_image, 5, mt_rand(-10, $this->imageW), mt_rand(-10, $this->imageH), $codeSet[mt_rand(0, 29)], $noiseColor); } } } /** * 绘制背景图片 * 注:如果验证码输出图片比较大,将占用比较多的系统资源 */ private function _background() { $path = dirname(__FILE__).'/Verify/bgs/'; $dir = dir($path); $bgs = array(); while (false !== ($file = $dir->read())) { if($file[0] != '.' && substr($file, -4) == '.jpg') { $bgs[] = $path . $file; } } $dir->close(); $gb = $bgs[array_rand($bgs)]; list($width, $height) = @getimagesize($gb); // Resample $bgImage = @imagecreatefromjpeg($gb); @imagecopyresampled($this->_image, $bgImage, 0, 0, 0, 0, $this->imageW, $this->imageH, $width, $height); @imagedestroy($bgImage); } /* 加密验证码 */ private function authcode($str){ $key = substr(md5($this->seKey), 5, 8); $str = substr(md5($str), 8, 10); return md5($key . $str); } } ``` ```
C语言仓库管理系统代码,求大佬改正(明天要结课上交)
#include <stdio.h>#include<stdlib.h>#define Length 10;#define List_Init_Size 10;#define OK 1;#define ERROR 0;#define SUM_Price 1#define SUM_Number 2#define MinPrice 3#define MaxPrice 4int flag = 0;typedef int ElemType;typedef int Status;typedef struct LNode{ struct LNode* next;//存储空间地址 int sum; int price;}LNode,*computer;int menu_select();//菜单函数Status Input_computer(computer& L, int number);//初始入库函数Status Output_computer(computer& L, int saleprice, int salenumber);//出库函数Status Check(computer L, int price, int number);//查找是否有该价格的电脑以及数量充足否Status NewInput_computer(computer& L, int Incomeprice, int Incomenumber);//新入库函数void DataBase_List(computer L);//数据清单函数void Sortfunction(computer& L);//排序函数int Datasum(computer L,int Selectnumber);//计算当前有的数据量void output(computer L);//输出函数void main(){ int number, saleprice, salenumber; int Incomeprice, Incomenumber; int Right_or_false = 0;//判断是否成功 computer L; for (;;) { switch (menu_select()) { case 1: if (flag == 0) { printf("输入初始入库电脑价格段数量(即有几种价格类型的电脑):"); scanf("%d", &number); Right_or_false = Input_computer(L, number); if (Right_or_false) { printf("入库成功\n"); flag = 1; } else { printf("入库失败\n"); } } else if(flag>0) { printf("已经初始化,请不要多次进行\n"); } break; case 2: output(L); break; case 3: if (flag) { printf("销售电脑价格:"); scanf("%d", &saleprice); printf("\n销售台数:"); scanf("%d", &salenumber); Right_or_false = Output_computer(L, saleprice, salenumber); if (Right_or_false) printf("出库成功\n"); else printf("出库失败\n"); } else { printf("请先初始化\n"); } break; case 4: if (flag) { printf("入库电脑价格:"); scanf("%d", &Incomeprice); printf("\n入库台数:"); scanf("%d", &Incomenumber); Right_or_false = NewInput_computer(L, Incomeprice, Incomenumber); if (Right_or_false) printf("入库成功\n"); else printf("入库失败\n"); } else { printf("请先初始化\n"); } break; case 5: if (flag) { DataBase_List(L); } else { printf("请先初始化\n"); } break; } }}int menu_select(){ int sn;//选择项select_number printf("-->1 初始化\n"); printf("-->2 输出\n"); printf("-->3 出库\n"); printf("-->4 新电脑入库\n"); printf("-->5 仓库电脑状况详细清单\n"); printf("input 1~5: "); for (;;) { scanf("%d", &sn); if (sn < 1 || sn>5) { printf("Plese input again\n"); } else { break; } } return sn;}//入库函数Status Input_computer(computer& L, int number){ computer p; int i; L = (computer)malloc(sizeof(LNode)); L->next = NULL; printf("请逆序输入%d个不同价格电脑的信息\n", number); for (i = number; i >= 1; i--) { p = (computer)malloc(sizeof(LNode)); printf("价格:"); for (;;) { scanf("%d", &p->price); if (p->price < 0) { printf("Plese input again,price must > 0\n价格:"); } else { break; } } printf("数量:"); for (;;) { scanf("%d", &p->sum); if (p->sum<0) { printf("Plese input again,sum must > 0\n数量:"); } else { break; } } p->next = L->next; L->next = p; } Sortfunction(L); return OK;}//出库函数Status Output_computer(computer& L, int saleprice, int salenumber){ int Right_false; computer p; Right_false = Check(L, saleprice, salenumber);//检查输入数据是否符合实际情况并返回值 if(Right_false==1) { printf("输入数据正确\n"); } else if(Right_false==0) { printf("该价格电脑未入库\n"); return ERROR; } else if(Right_false==-1) { printf("库存不足\n"); return ERROR; } p = L->next; while (p) { if (p->price == saleprice) { p->sum = p->sum - salenumber; } p=p->next; } return OK;}//查找是否有该价格的电脑以及数量充足否Status Check(computer L, int price, int number){ computer p; p = L->next; while(p) { if (p->price == price && p->sum >= number) { return OK; } else if(p->price == price && p->sum < number) { return -1; } p = p->next; } return ERROR;}//新入库函数Status NewInput_computer(computer& L, int Incomeprice, int Incomenumber){ int Right_false,Add_or_Updata=0; computer p, addnode; p = L->next; Right_false = Check(L, Incomeprice, Incomenumber); addnode = (computer)malloc(sizeof(LNode)); if(Right_false==1||Right_false==-1) { printf("已有该价格电脑,即将更新该价格电脑数量\n"); Add_or_Updata = 1; } else if(Right_false==0) { printf("没有该价格电脑,即将添加该价格电脑信息\n"); Add_or_Updata = 0; } while(p) { if(Add_or_Updata==1&&p->price==Incomeprice) { p->sum = p->sum + Incomenumber; } else if(Add_or_Updata==0&&p->next==NULL) { addnode->price = Incomeprice; addnode->sum = Incomenumber; p->next = addnode->next; addnode->next = NULL; return OK; } p = p->next; } Sortfunction(L); return OK;}//排序函数void Sortfunction(computer& L){ LNode* p = L->next, * pre; LNode* r = p->next; p->next = NULL; p = r; while (p != NULL) { r = p->next; pre = L;//把L的地址交给pre while (pre->next != NULL && pre->next->price < p->price) { pre = pre->next; } p->next = pre->next;//p->next=L->next pre->next = p;//L->next=p p = r; }}//计算已有的数据数量int Datasum(computer L, int Selectnumber){ computer p; int num = 0;//计数用 int computersum = 0, computerprice = 0; p = L->next; while (p) { num = num + 1; if (Selectnumber == SUM_Price) { computerprice = computerprice + (p->price*p->sum); if (p->next == NULL) return computerprice; } else if (Selectnumber == SUM_Number) { computersum += p->sum; if (p->next == NULL) return computersum; } else if (num==1&&Selectnumber==MinPrice) { return p->price; } else if(Selectnumber==MaxPrice&&p->next==NULL) { return p->price; } p = p->next; }}void output(computer L) { computer p; p = L->next; printf("输出链表中的元素:\n"); while (p) { printf("价格:%d\n数量:%d\n", p->price,p->sum); p = p->next; }}//清单函数void DataBase_List(computer L){ int computer_sum,computer_sumprice,maxprice,minprice; computer_sum = Datasum(L, SUM_Number);//计算电脑总台数 computer_sumprice = Datasum(L, SUM_Price);//计算电脑总金额 minprice = Datasum(L, MinPrice);//求电脑最低价 maxprice = Datasum(L, MaxPrice);//求电脑最高价 //输出区 printf("<*>-->电脑总数:%d台\n", computer_sum); printf("<*>-->电脑总价值:%d元\n", computer_sumprice); printf("<*>-->电脑最低价:%d元\n", minprice); printf("<*>-->电脑最高值:%d元\n", maxprice); printf("<*>-->电脑平均价格:%f元\n", (float)computer_sumprice/(float)computer_sum);}
二叉树的创建问题:为什么我写的程序删掉一句printf语句就执行不了了??求大佬解答
```//已知先序遍历和中序遍历创建二叉树 //已知先序遍历序列和中序遍历序列创建二叉树 # include <stdio.h> # include <malloc.h> # include <string.h> # define MaxSize 20 typedef struct node { char data; struct node *lchild,*rchild; }BiNode,*BiTree; void Create(BiTree &T,char pre[],char mid[]) { char root;//根结点 char lpre[MaxSize],lmid[MaxSize],rpre[MaxSize],rmid[MaxSize];//左子树先序序列,左子树中序序列,右子树先序序列,右子树中序序列 int preindex,midindex;//根结点在先序序列中的位置,根结点在中序序列中的位置 int i,j; printf("先序序列的长度为:%d\n",strlen(pre)); if(strlen(pre)==0) { T=NULL; return; } root=pre[0]; printf("根结点为:%c\n",root); //preindex for(i=0;pre[i]!=root;i++) { preindex=i+1; } printf("根结点在先序遍历中的位置preindex=%d\n",preindex); //midindex for(i=0;mid[i]!=root;i++) { midindex=i+1; } printf("根结点在中序遍历中的位置midindex=%d\n",midindex); //lmid j=0; for(i=0;mid[i]!=root;i++) { lmid[j]=mid[i]; j++; } printf("lmid=%s\n",lmid); //rmid j=0; for(i=midindex+1;mid[i]!='\0';i++) { rmid[j]=mid[i]; j++; } printf("rmid=%s\n",rmid); //lpre j=0;i=0; if(preindex+1==midindex)//bug处理,防止因为pre的长度等于1而导致lpre无法赋值,直接输出垃圾值 { lpre[0]=pre[preindex+1]; lpre[1]='\0'; } else { for(i=preindex+1;i<midindex+1;i++) { lpre[j]=pre[i]; j++; } } printf("lpre=%s\n",lpre); //rpre j=0; for(i=midindex+1;pre[i]!='\0';i++) { rpre[j]=pre[i]; j++; } //这句print也不能删除??如果删除就输出不了遍历序列 printf("rpre=%s\n",rpre); T=(BiNode *)malloc(sizeof(BiNode)); if(T!=NULL) { T->data=root; //这句print不能删除??不知道为什么??如果删除这句话程序直接输出死循环 printf("\n--------------------------递归建立左子树--------------------------------------\n"); Create(T->lchild,lpre,lmid); printf("\n--------------------------递归建立右子树--------------------------------------\n"); Create(T->rchild,rpre,rmid); } } //先序遍历 void PreTraverse(BiTree &T) { if(T!=NULL) { printf("%c",T->data); PreTraverse(T->lchild); PreTraverse(T->rchild); } } //中序遍历 void MidTraverse(BiTree &T) { if(T!=NULL) { MidTraverse(T->lchild); printf("%c",T->data); MidTraverse(T->rchild); } } //后序遍历 void PostTraverse(BiTree &T) { if(T!=NULL) { PostTraverse(T->lchild); PostTraverse(T->rchild); printf("%c",T->data); } } int main(void) { BiTree T; char pre[MaxSize],mid[MaxSize]; printf("请输入先序遍历序列:\n"); scanf("%s",pre); printf("请输入中序遍历序列:\n"); scanf("%s",mid); Create(T,pre,mid); printf("\n先序序列为:\n"); PreTraverse(T); printf("\n中序序列为:\n"); MidTraverse(T); printf("\n后序序列为:\n"); PostTraverse(T); return 0; } ``` ![图片说明](https://img-ask.csdn.net/upload/201912/12/1576159434_416600.png) ![图片说明](https://img-ask.csdn.net/upload/201912/12/1576159447_886482.png) ![图片说明](https://img-ask.csdn.net/upload/201912/12/1576159457_751266.png) 而且如果把MaxSize的大小改成100或者1000,这个程序都无法输出了 为什么??哪出问题
pre标签在微信网页版输入框中神奇表现
![图片说明](https://img-ask.csdn.net/upload/201610/09/1476027760_284670.png) 一开始啥都没有,一切正常,在输入123456789之后 ![图片说明](https://img-ask.csdn.net/upload/201610/09/1476027725_64954.png) 没任何问题,关键在点击了输入框的字符串,让光标出现在字符串中间的时候,pre和他外层的div全部都刷新了!然后效果是: ![图片说明](https://img-ask.csdn.net/upload/201610/09/1476027813_641695.png) 看到了吗。注意我光标的位置以及红框,最后插入图片 ![图片说明](https://img-ask.csdn.net/upload/201610/09/1476027979_163317.png) 我的问题是在鼠标点击输入框类的字符串的时候,光标移动到指定的位置,做了什么操作,能让pre产生这么神奇的效果,我没有看到任何换行符或者其他东西,而且这时候你edit as HTML 看到的是 ![图片说明](https://img-ask.csdn.net/upload/201610/09/1476028041_149635.png) 不知道大伙有没有明白我的意思,我认为这是pre设置为可编辑状态后,能在光标指定位置插入表情图片的关键所在, 如果大伙有遇到类似的情况,都可以说说,包括光标位置的定位,以及复制粘贴方法如何重写已保证只有纯文本和表情图片能留下等等... ps:我实在没有悬赏币,抱歉...
svn,在hooks的pre-commit中怎么检测到提交代码,并更新到测试服务器上
在服务器端检测提交SVN未成功的代码,并同步到测试服务器上,执行检测后,返回结果给SVN服务器,控制提交结果。 这里怎么在pre-commit中检测提交的代码呢,又怎么同步到测试服务器呢?
创建及遍历线索二叉树,出了一些小问题
不知道哪里出了问题 创建为先序创建 线索化及遍历都是中序 不知道为什么跑不出来 ``` #include<stdio.h> #include<stdlib.h> #include<string.h> //原二叉链表中添加ltag和rtag //ltag 0表示lchild指向左孩子 1表示lchild指向结点前驱 //rtag 0表示rchild指向右孩子 1表示rchild指向结点后继 /*建立线索化二叉树实质上是遍历一棵二叉树,在遍历过程中检查左右指针域 是否为空,若为空,将指针改为前驱结点或者后继结点的线索*/ enum Ptag{Link,Thread}; //Link(0) Thread(1) typedef char ElemType; typedef struct BiTNode { ElemType data; struct BiTNode *lchild, *rchild; Ptag ltag,rtag; }BiTNode,*BiTree; BiTree pre=NULL; //全局变量 void TThread(BiTree p) //P为根结点的二叉树中序线索化 { //每次判断当前访问节点的ltag和上一次访问节点rtag if(p!=NULL) { TThread(p->lchild); if(p->lchild==NULL){ p->ltag=Thread; p->lchild=pre; } else p->ltag=Link; if(pre->rchild==NULL){ pre->rchild=p; pre->rtag=Thread; } else pre->rtag=Link; pre=p; TThread(p->rchild); } } BiTree CreatTree(BiTree bt) //对bt根结点的二叉树线索化 增加一个头结点head { BiTree head; head=(BiTree)malloc(sizeof(BiTNode)); head->ltag=Link; head->rtag=Thread; head->rchild=bt; if(bt==NULL) head->rchild=head; else{ head->lchild=bt; pre=head; TThread(bt); pre->rchild=head; pre->rtag=Thread; head->rchild=pre; } return head; } void createBiTree(BiTree *T) //若传值为BiTree T,形参传递而不是实参传递 { ElemType ch; scanf("%c",&ch); getchar(); // fflush(stdin); if (ch=='#') { *T = NULL; return; } else { *T = (BiTree)malloc(sizeof(BiTNode)); if (!*T) exit(1); (*T)->data=ch; printf("请输入左子树:\n"); createBiTree(&((*T)->lchild)); //左 printf("请输入右子树:\n"); createBiTree(&((*T)->rchild)); //右 } } BiTree InFirst(BiTree Bt) //寻找中序遍历第一个结点 { BiTree p=Bt; if(!p) return(NULL); while(p->ltag==0){ p=p->lchild; } return p; } BiTree InNext(BiTree p) //寻找当前结点的后继结点 { BiTree Next; if(p->rtag==1) Next=p->rchild; else{ BiTree q=NULL; for(BiTree q=p->rchild;q->ltag==0;q=q->lchild); Next=q; } return Next; } void VisitBt(BiTree p) //遍历中序线索二叉树 { BiTree q=InFirst(p); while(q){ printf("%d\n",q->ltag); // printf("aaaaaaaaaaaaaaaaaaaaaa\n"); q=InNext(q); } } int main() { BiTree T,Tree; createBiTree(&T); Tree=CreatTree(T); VisitBt(Tree->lchild); return 0; } ``` 求帮助 wan'fen'gan'xie
文件读写失败,求问哪里出了错?
(学生成绩管理系统链表版)应该是文件读写的问题,第一次录入信息可以写入文件,但再次运行时无法读取之前写入的文件, 且会弹出“Debug error”的框,求问哪里出错了,谢谢 ![图片说明](https://img-ask.csdn.net/upload/202001/06/1578242676_963443.png) 点击忽略以后不影响程序运行 ![图片说明](https://img-ask.csdn.net/upload/202001/06/1578242700_492778.png) 可以输入信息,且写入了文件 ![图片说明](https://img-ask.csdn.net/upload/202001/06/1578242713_264771.png) 但关闭文件后,再次运行程序,显示如下 ![图片说明](https://img-ask.csdn.net/upload/202001/06/1578242899_516963.png) ![图片说明](https://img-ask.csdn.net/upload/202001/06/1578242722_393073.png) 无法读取之前写入的信息,程序也无法 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> //创建学生信息结构体 struct student { char ID[20]; //学号 char name[20]; //姓名 int math; //高数成绩 int english; //英语成绩 int eletric; //电路成绩 int c_program; //C语言成绩 float sum; //总分 float aver; //平均分 }; //链式管理系统 struct Node { struct student data; struct Node* next; }; //创建表头,表示整个链表 struct Node* CreateList() { struct Node* head = (struct Node*)malloc(sizeof(struct Node)); head->next = NULL; return head; } //创建结点 struct Node* CreateNode(struct student data) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->data = data; newNode->next = NULL; return newNode; } //插入操作 void insertNode(struct Node* head, struct student data) { //创建插入结点 struct Node* newNode = CreateNode(data); newNode->next = head->next; head->next = newNode; } //删除操作 void deleteNode(struct Node* head, char *pID) { struct Node* cur, * prev; for (cur = head, prev = NULL;cur != NULL && strcmp(cur->data.ID, pID) != 0;prev = cur, cur = cur->next); if (cur == NULL) { printf("未找到相关数据\n"); system("pause"); return; } if (prev == NULL) head = head->next; else prev->next = cur->next; free(cur); return; } //打印操作 void printList(struct Node* head) { //从第二个结点开始打印 struct Node* p = head->next; printf("学号\t姓名\t高数\t英语\t电路\tC语言\t总分\t平均分\n"); while (p) { printf("%s\t%s\t%d\t%d\t%d\t%d\t%3.0f\t%.2f\n",p->data.ID, p->data.name, p->data.math, p->data.english, p->data.eletric, p->data.c_program, p->data.sum, p->data.aver); p = p->next; } printf("\n"); } //按照平均分进行排序(冒泡排序法) void sort(struct Node* head) { struct Node* p, * pstart, * pend, * temp, * pre; p = head->next; pend = head; pstart = (struct Node*)malloc(sizeof(struct Node)); pstart->next = head; while (p != NULL) { temp = pstart->next, pre = pstart; while (temp != p && p->data.aver >= temp->data.aver) { temp = temp->next; pre = pre->next; } if (temp == p) pend = p; else { pend->next = p->next; p->next = temp; pre->next = p; } p = pend->next; } head = pstart->next; free(pstart); return; } //链表的文件操作 //链表的读文件操作 void readInfo(struct Node* head, char* fileName) { FILE* read = fopen(fileName, "r"); if (read == NULL) read = fopen(fileName, "w+"); struct student data; while (fscanf(read, "%s\t%s\t%d\t%d\t%d\t%d\t%3.0f\t%.2f\n", data.ID, data.name, data.math, data.english, data.eletric, data.c_program, data.sum, data.aver) != EOF) insertNode(head, data); fclose(read); } //链表的写文件操作 void writeInfo(struct Node* head, char *fileName) { FILE* write = fopen(fileName, "w"); struct Node* p = head->next; while (p) { fprintf(write, "%s\t%s\t%d\t%d\t%d\t%d\t%3.0f\t%.2f\n", p->data.ID, p->data.name, p->data.math, p->data.english, p->data.eletric, p->data.c_program, p->data.sum, p->data.aver); p = p->next; } fclose(write); } //菜单项目 void menu() { printf("--------------学生成绩管理系统------------------\n"); printf("\t\t0.退出系统\n"); printf("\t\t1.录入信息\n"); printf("\t\t2.浏览信息\n"); printf("\t\t3.删除信息\n"); printf("\t\t4.修改信息\n"); printf("\t\t5.成绩排序\n"); printf("------------------------------------------------\n"); } struct Node* studentList = CreateList(); //按键交互 void keydown() { int userkey = 0; printf("请输入指令的相应序号:\n"); scanf("%d", &userkey); struct student userData; switch (userkey) { case 0: printf("--------------【退出系统】---------------\n"); printf("正常退出\n"); system("pause"); exit(0); break; case 1: printf("--------------【录入信息】---------------\n"); printf("请输入以下学生信息:\n"); printf("学号\t姓名\t高数\t英语\t电路\tC语言\n"); scanf("%s%s%d%d%d%d", userData.ID, userData.name, &userData.math, &userData.english, &userData.eletric, &userData.c_program); userData.sum = userData.math + userData.eletric + userData.c_program + userData.english; userData.aver = (userData.sum) / 4; insertNode(studentList, userData); break; case 2: printf("--------------【浏览信息】---------------\n"); printList(studentList); break; case 3: printf("--------------【删除信息】---------------\n"); printf("请输入需要删除的学生学号:\n"); scanf("%s", userData.ID); deleteNode(studentList, userData.ID); break; case 4: printf("--------------【修改信息】---------------\n"); printf("请输入需要修改的学生学号:\n"); scanf("%s", userData.ID); deleteNode(studentList, userData.ID); printf("请重新输入以下学生信息:\n"); printf("学号\t姓名\t高数\t英语\t电路\tC语言\n"); scanf("%s%s%d%d%d%d", userData.ID, userData.name, &userData.math, &userData.english, &userData.eletric, &userData.c_program); userData.sum = userData.math + userData.eletric + userData.c_program + userData.english; userData.aver = (userData.sum) / 4; insertNode(studentList, userData); printf("修改成功!\n"); break; case 5: printf("--------------【成绩排序】---------------\n"); sort(studentList); printList(studentList); break; default:printf("输入错误,请重新输入\n"); break; } } int main() { readInfo(studentList, "studentInfo.txt"); while (1) { menu(); keydown(); writeInfo(studentList, "studentInfo.txt"); system("pause"); system("cls"); } system("pause"); return 0; } ![图片说明](https://img-ask.csdn.net/upload/202001/06/1578242676_963443.png) ![图片说明](https://img-ask.csdn.net/upload/202001/06/1578242700_492778.png) ![图片说明](https://img-ask.csdn.net/upload/202001/06/1578242713_264771.png) ![图片说明](https://img-ask.csdn.net/upload/202001/06/1578242722_393073.png)
js方法闭包函数显示函数未定义
求大佬指点迷津 ![图片说明](https://img-ask.csdn.net/upload/201912/11/1576073618_81635.png) ``` <html> <body> <script type="text/javascript"> var str=0; var focus=function(){ function noNumbers(e) { var keynum; keynum = window.event ? e.keyCode : e.which; document.onkeydown = function(){ if(keynum==8){ str++; } document.getElementById("showtimes").innerHTML = str ; } } } </script> <input id="txt1" type="text" onFocus="focus()" onkeydown="noNumbers(event)"/> </div><pre>消除次数:<p id="showtimes">0</p><pre></div> </body> </html> ```
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
相关热词 c# 引用mysql c#动态加载非托管dll c# 两个表数据同步 c# 返回浮点json c# imap 链接状态 c# 漂亮字 c# 上取整 除法 c#substring c#中延时关闭 c#线段拖拉
立即提问