前言:18/06/06开始学习,每个程序都会用C写一遍,因书中用C++举例,也会换种思路写,供学习和参考!!!很推荐这本书很不错,准备入手,一般不买实体书,都用电子书,因一般都看一遍,但这本会看很多遍!无论刚毕业,还是跳槽都可以看一下...
面试题3:二维数组中的查找
题目如图,所有题目截图均引自《剑指offer》,接下来不再说明!
书中从右上角开始查找,我的程序从左下角查找:
#include<stdio.h> #include<stdbool.h> bool Find(int (*num)[4],int rows,int column,int number) { bool found = false; if(num!=NULL && rows>0 && column>0) { int col = 0; int row = rows-1; while(col<column && row>=0) { if((*num)[row*column+col] == number) { found = true; break; } if((*num)[row*column+col] < number) ++col; else --row; } } return found; } int main() { int number; int num[4][4] = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}}; puts("please input your number:"); scanf("%d",&number); bool res = false; res = Find(num,4,4,number); printf("res:%d ",res); return 0; }
对逻辑不理解的,可以随时留言,随时解答!!!
面试题4:
代码如下:
#include<stdio.h> void ReplaceBlank(char string[],int length) { if(string==NULL && length<=0) return; int originalLen = 0;//字符串实际长度 int numBlank=0,i=0; while(string[i] != '