当前位置: 首页 > wzjs >正文

贵阳网站建设公司资源网盘链接

贵阳网站建设公司,资源网盘链接,萝岗公司网站建设,网站维护建设费入什么科目tips 1. 在电脑里面,任何一切字符,当一看到的时候,脑子里面就要把它转化成ACSII值。如while(0),可以实现死循环。 2. 统计整形数组的长度不能用strlen(),别一天到晚用到底,strlen统计的是字符数组的长度 …

tips

1. 在电脑里面,任何一切字符,当一看到的时候,脑子里面就要把它转化成ACSII值。如while('0'),可以实现死循环。

2. 统计整形数组的长度不能用strlen(),别一天到晚用到底,strlen统计的是字符数组的长度

3. unsigned 是无符号数,int是有符号数。二者占空间大小相同, 区别是最高位,int表示符号位,而unsigned表示数据位。所以,int可以表示负数,而unsigned不能. 当unsigned可以表示的正数范围比int大一倍.

4.  注意操作符的控制求值顺序,比如说||与&&的短路现象

5. .(点操作符)与*这两个操作符的优先级还是点号来的高。所以有时候在访问结构体成员的时候,*p.a错误,(*p).a可以,但是*(pa).a也是错误的

6. 

一个简单的字符串内大小写字母转化器

代码:

#include <stdio.h>
#include <string.h>
int main()
{char arr[20] = { 0 };int num = 0;do{printf("请输入一个字符串:");gets(arr);int sz = strlen(arr);int i = 0;//printf("请选择:1.所有大写字母化为小写。2.所有小写字母化为大写。\n");printf("请输入数字(按0退出):");scanf("%d", &num);getchar();if (num == 1){for (i = 0; i < sz; i++){if ((*(arr + i) >= 'A') && (*(arr + i) <= 'Z')){*(arr + i) += ('a' - 'A');}}printf("%s\n", arr);}else if (num == 2){for (i = 0; i < sz; i++){if ((*(arr + i) >= 'a') && (*(arr + i) <= 'z')){*(arr + i) += ('A' - 'a');}}printf("%s\n", arr);}} while (num);printf("退出成功\n");return 0;
}

演示效果:


 

经验总结:

1. 在字符串内部所谓的\0与\n其实编译器都把它看成两个字符。
2. 对于字符串的操作,指针与\0一直都是灵魂所在。
3. 之前也讲过,char虽然是字符类型,但是其本质上也是一个整形。因为在计算机内存当中,根本就存储不了肉眼能看见的字符,而是根据ASCII码表把它转化成对应的十进制整数,因此有一些操作的话就大胆的去弄。事实上,你看见一个字符,在你眼睛里面它就是一个数字。
4. 在ASCII表里面,所有的大写字母与小写字母的值都相差一样,并且所有的大写字母与小写字母都是连续的。 

5. scanf读取的时候是不能够丢掉\n的,因此如果有时候不清理输入缓冲区的话,会出现一些bug。

数字在有序数组中出现的次数

题目链接:https://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2?tpId=13&tqId=23274&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目:

代码1(二分法1)

/*** * @param data int整型一维数组 * @param dataLen int data数组长度* @param k int整型 * @return int整型*/
int GetNumberOfK(int* data, int dataLen, int k ) 
{int left=0;int right=dataLen-1;while(left<=right){int mid=(left+right)/2;if (*(data+mid)>k){right=mid-1;}else if (*(data+mid)<k){left=mid+1;}else{int num1=1;int num2=1;while((*(data+mid+num1)==k)&&(mid+num1<dataLen)){num1++;}while((*(data+mid-num2)==k)&&(mid-num2>=0)){num2++;}return num1+num2-1;}}return 0;
}

经验总结:

1. 对于一个有序数组(并不需要严格升序或降序),用二分查找是一个十分常用的方法。那么既然说起二分查找,套路肯定万变不离其宗,设定一个左端点与右端点,然后再取中间值并且进行一系列的比较。
2. 上面是第一种方法,当中间值恰好为要查找的数时,这时候就以此为原点向左右两边扩展。

代码2(二分法2)

/*** * @param data int整型一维数组 * @param dataLen int data数组长度* @param k int整型 * @return int整型*/
int bisearch(int* data, int dataLen, double num)
{int left=0;int right=dataLen-1;while(left<=right){int mid=(left+right)/2;if (*(data+mid)>num){right=mid-1;}else{left=mid+1;}}return left;
}
int GetNumberOfK(int* data, int dataLen, int k ) 
{return bisearch(data,dataLen,k+0.5)-bisearch(data,dataLen,k-0.5);
}

经验总结:

1. 这种二分查找的操作确实让我第一次见(实属眼界有限),对此,我总结了一些关于二分查找的个人心得。

不得不回顾一下这题

旋转数组的最小数字

题目链接:https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba?tpId=13&tqId=23269&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目:

 

代码:

/*** * @param rotateArray int整型一维数组 * @param rotateArrayLen int rotateArray数组长度* @return int整型*/
int minNumberInRotateArray(int* rotateArray, int rotateArrayLen ) 
{int left=0;int right=rotateArrayLen-1;while(left<=right){int mid=(left+right)/2;if (*(rotateArray+mid)>*(rotateArray+right)){left=mid+1;}else if (*(rotateArray+mid)<*(rotateArray+right)){right=mid;}else{right--;}}return *(rotateArray+left);
}

 经验总结:

1. 二分查找目前个人心得:

整数转换

题目链接:https://leetcode.cn/problems/convert-integer-lcci/ 

题目:

代码:

int convertInteger(int A, int B)
{unsigned int n=A^B;int count=0;while(n){n=n&(n-1);count++;}return count;
}

经验总结:

1. 这道题说起整数的二进制位之前的转换。说白了,其实就是去找这两个整数的二进制表示形式中到底有几位不同。
2. 对于两个二进制表示形式,按位异或是个显而易见的选择。
3. 当^之后,接下来就是去思考这个结果(二进制序列)到底有多少个1。
(顺便提一下,用int去接受结果可能会出现bug,要用unsigned int去接收,这样的话原先的符号位不再是了,变成了实实在在的数据位)
4. 接下来问题就回归成了求一个二进制序列的1的个数。
这个时候用神奇的表达式n&(n-1)执行一次物理消灭一个1并且计着数就OK了。

 

 

 


文章转载自:

http://OnUb3CIc.rqgjr.cn
http://0Nx57y2p.rqgjr.cn
http://uKUzgCIV.rqgjr.cn
http://gwHsHZqa.rqgjr.cn
http://XVocUuRx.rqgjr.cn
http://r0PR2QKV.rqgjr.cn
http://sRvIIHew.rqgjr.cn
http://e54gGGTG.rqgjr.cn
http://ccJC8Btj.rqgjr.cn
http://yEXUlc6m.rqgjr.cn
http://wENbpDBc.rqgjr.cn
http://2UllCN6A.rqgjr.cn
http://VqwiR98v.rqgjr.cn
http://KQ6xdgCi.rqgjr.cn
http://33Rn85Z3.rqgjr.cn
http://P1Jx7owz.rqgjr.cn
http://g0XZCoOO.rqgjr.cn
http://fu3HhkUP.rqgjr.cn
http://DNmOSSIk.rqgjr.cn
http://t9iS6ox5.rqgjr.cn
http://N4kuRPIN.rqgjr.cn
http://jPBfxhkY.rqgjr.cn
http://LcrSiIbe.rqgjr.cn
http://GVCabNrp.rqgjr.cn
http://YUaKstZa.rqgjr.cn
http://XmEofds7.rqgjr.cn
http://GmOzvIXX.rqgjr.cn
http://8HN44ji4.rqgjr.cn
http://ixVOsXbO.rqgjr.cn
http://NmXqmE7g.rqgjr.cn
http://www.dtcms.com/wzjs/778570.html

相关文章:

  • 重庆网站房地产在附近找工作
  • 高德地图开发平台优化网站要多少钱
  • 方城网站设计h5网站制作公司
  • 微信公司网站网站站长
  • 做信息发布类网站广西教育平台网站建设
  • sql server做网站合肥建站公司有哪家招聘的
  • wordpress建站详细教程视频怎样才能被百度秒收录
  • 深圳做网站最好的公网站 哪些服务器
  • 免费一键网站做外贸网站怎么样
  • 西安优化seo托管长沙网站搭建优化
  • 杭州建站模板展示深圳报业集团官网
  • o2o网站建设包括哪些网站服务器信息查询
  • 手机网站开发ios佛山八戒网站建设
  • 自己怎样免费建设网站wordpress 浏览次数 2
  • php网站后台开发vps做网站 推广
  • 无锡专业网站建设焦作市建设银行网站
  • pc端与手机端网站开发的区别世界工厂网怎么样
  • 网站建设工公司被其它人拿来做网站
  • 广安做网站Wordpress首页制作代码
  • wordpress做导航网站福州网站制作培训
  • 淮南网站seo网站建设目的和意义
  • 广州高铁新建站在哪里在线视频直播网站建设
  • 网站重新备案贵州网站建设维护
  • 花都区pc端网站建设平面设计教程网站有哪些
  • 网站做接口到app价格手机网站建设软件有哪些内容
  • 江苏南京建设工程信息网站wordpress如何关闭网页
  • 手机wap网站模板免费下载南昌做网站哪家公司比较好
  • 一个专做窗帘的网站wordpress模板影视
  • 网站建设背景介绍vue cms 网站开发
  • .org做商业网站WordPress排除某个分类