
C/C++编程
文章平均质量分 50
梅菲斯特eda
且听风吟
展开
-
C++/C语言中十进制转二进制的常见方法
用一个算法实现十进制数向二进制数转换,我们考虑得到7的二进制表示,奇数的二进制形式最后一位肯定是1,而偶数的二进制最后一位肯定是0。可以通过7%2来计算二进制最后一位数是0或者1。即对于十进制整数n而言,二进制表示的最后一位肯定可以用n%2计算出来。而为了得到二进制倒数第二位上的数字,则需要把十进制数除以2,这种对于十进制数的计算相当于把该数值的二进制位向左移了一位(可以类比计算一...原创 2018-04-17 10:34:40 · 67689 阅读 · 7 评论 -
位序、字节序、类型序
计算机学科中的很多问题,都是因为概念的抽象模糊,导致理解上的不确定性,增加学习领悟的难度。对于计算机中数据存放次序的问题,很多教材或文章要么含糊其辞,要么凭空飞来结论,让人看的一头雾水。几经周折,结合多篇文章,对内存中数据存放次序终于有了较深入的理解,现记录如下:一、几个概念: 1.内存中关于数据的存放顺序有三个层次(即三种不同的视角): ...转载 2018-11-06 21:58:56 · 4123 阅读 · 0 评论 -
C语言中(字符串)输入scanf()、gets()、fgets()以及getchar()、getc()函数的联系与区别
scanf()函数的输入基于获取“单词”,如果使用%s格式,字符串以第一个非空白字符开始读入,读到(但不包括)下一个空白字符(可以是空格、制表符或者换行符)。使用scanf()把一个字符串读进一个字符数组时,不使用&。scanf()函数返回成功读入项目的个数,若没有任何合乎要求的项目读入,scanf()返回0,当它检测到文件结尾时,返回EOF(#define指令把EOF的值定义为-1)。...原创 2018-04-16 22:39:47 · 5524 阅读 · 0 评论 -
C语言中构造随机数原理及rand()取余构造随机数方法
在C语言中,ANSIC C程序库提供rand()函数来产生随机数。但事实上,rand()是并不是一个真正的随机数产生器,即可以预测随机序列的顺序,在默认随机种子情况下产生0~99之间的随机数,其随机序列为{83,86,77,15,……},比如以下程序:#include<stdio.h>#include<stdlib.h>int main(){ i...原创 2018-04-23 14:58:25 · 15345 阅读 · 7 评论 -
整数求因数算法
对一个整数求因数的计算在编程题中比较常见,还有在求出因数后对因数构成的数组再进行操作。例如,求一个整数的所有因数的求和结果,若是求和结果等于该整数,称这个整数为“完全数”,现在需要对输入的一个整数进行判断。首先是确定整数应该测试因数的范围,最直观的是将整数num依次循环除以2~num-1所有数,挑出余数为0的数。事实上,这样测试使循环次数增加了,例如32=4*8,只需要测试出4,就已经知道8也满足...原创 2018-09-02 13:03:19 · 8407 阅读 · 0 评论 -
数组排序问题
牛客网上有一道很典型的数组排序问题:先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉。然后再把这些数从小到大排序(同一个测试用例里可能会有多组数据,希望大家能正确处理)。我的做法比较常规:先存储数组,然后去重,之后排序输出。编写代码:#include<iostream>#include<algorith...原创 2018-08-20 13:16:06 · 1805 阅读 · 0 评论 -
字符串去重、统计不同字符种类数问题
1、编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127),不在范围内的不作统计。#include <iostream>#include <string>using namespace std;int main(){ string str; int m,len,count=1; int flag = 0;...原创 2018-08-17 13:43:11 · 1372 阅读 · 0 评论 -
C/C++在不确定输入字符串长度情况下,对其进行存储和字符操作问题
在很多IT公司的编程笔试题中都会提到,输如长度未知的字符串以及整数数组进行各种操作,本文进行简单地归纳。对于输入一行随意大小的(中间不含空格)字符串求其长度并输出指定位上字符,用C++可以编程为:#include <iostream>#include <string>#include <cstring>using namespace std;...原创 2018-08-16 11:38:49 · 20452 阅读 · 2 评论 -
字符串排序问题
题目描述:编写一个程序,将输入字符串中的字符按如下规则排序。规则1:英文字母从A到Z排列,不区分大小写。如,输入:Type 输出:epTy规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入:BabA 输出:aABb规则3:非英文字母的其它字符保持原来的位置。如,输入:By?e 输出:Be?y 输入:A Famous Saying: Much Ad...原创 2018-08-18 11:22:33 · 1881 阅读 · 0 评论 -
老实人线上笔试心得
之前投了菊厂的软件开发岗,第一道笔试题是输入长度未知的字符串,然后去重,不改变排列顺序输出字符串(字符串中不包含空格)。这一题比较简单,考虑到...原创 2018-08-15 22:55:14 · 6418 阅读 · 0 评论 -
涉及位操作的算法辑录
判断一个正整数X是否为2N,即是否为2的N次方(2,4,8,…)。除了使用循环语句(或者迭代)进行除2取余运算外,也可以采用位运算。考虑到2,4,8…这样的整数转化为二进制数是10,100,1000,…。如果X是2的N次方,比如2,4,8,那么X减1之后的二进制数则分别为1,11,111。与X作与运算,结果为零。利用此方法,可以写一个判断整数X是否为2的N次方的程序。#include<...原创 2018-05-31 16:30:50 · 228 阅读 · 0 评论 -
C++中的Lambda表达式
转载自https://www.cnblogs.com/DswCnblog/p/5629165.html--------------------------------------------------------------------------------------C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门...转载 2018-11-10 23:08:17 · 278 阅读 · 0 评论