《剑指offer》在mac上编译通过的代码
来源:互联网 发布:澳洲mac电脑学生打几折 编辑:程序博客网 时间:2024/06/08 08:04
电脑:MAC 64位
编译工具:xcode
2.3.1数组
#include <stdio.h>int GetSize(int data[]){ return sizeof(data);}int main(int argc, const char * argv[]){ int data1[] = {1,2,3,4,5}; int size1 = sizeof(data1); int *data2 = data1; int size2 = sizeof(data2); int size3 = GetSize(data1); printf("%d,%d,%d\n",size1,size2,size3); return 0;}
输出结果:
20,8,8
面试题3:二维数组中的查找
1)从右上角开始找:说明
xcode中无bool,需要重新定义
#include <stdio.h>typedef enum{ false, true}bool;bool Find(int *matrix, int rows, int columns, int number ){ bool found = false; if(matrix != NULL && rows > 0 && columns > 0){ int row = 0 ; int column = columns - 1 ; while(row<rows && column>=0){ if(matrix[row*4+column] == number){ printf ("The number is %d,row = %d,column = %d\n",matrix[row*4+column],row+1,column+1); found = true; break; }else if(matrix[row*4+column] > number){ --column; }else{ ++row; } } } if(found == false){ printf("matrix have no number %d\n",number); } return found;}void main() { int matrix[][4] = {1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15}; bool flag = Find((int *)matrix, 4, 4, 15); }
结果
The number is 15,row = 4,column = 4matrix have no number 100Program ended with exit code: 02)从左下角开始找,可以找到全部重复的数字/找出最大最小值/查找没有的数字
#include <stdio.h>typedef enum{ false, true}bool;bool Find(int *matrix, int rows, int columns, int number ){ bool found = false; if(matrix != NULL && rows > 0 && columns > 0) { int column = 0 ; int row = rows - 1 ; while(matrix != NULL&& rows > 0 && columns > 0) { while(matrix != NULL && rows > 0 && columns > 0) { if(matrix[row*4+column] == number) { printf ("The number is %d,row = %d,column = %d\n",matrix[row*4+column],row+1,column+1); found = true; break; }else if(matrix[row*4+column] < number) { ++column; if(column>3){ break; } }else { --row; } } --row; ++column; if(row<0 || column>3) { break; } } } if(found == false){ printf("matrix have no number %d\n",number); } return found;}int main() { int matrix[][4] = {1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15}; Find((int *)matrix, 4, 4, 9);//double Find((int *)matrix, 4, 4, 2); Find((int *)matrix, 4, 4, 15);//max Find((int *)matrix, 4, 4, 1);//min Find((int *)matrix, 4, 4, 11115);//none return 0;}
结果
The number is 9,row = 2,column = 3The number is 9,row = 1,column = 4The number is 2,row = 2,column = 1The number is 2,row = 1,column = 2The number is 15,row = 4,column = 4The number is 1,row = 1,column = 1matrix have no number 11115
面试题4:替换空格
说明:含mac上编译通过的c代码和测试用例
#include <stdio.h>void ReplaceBlank(char string[],int length){ if(string == NULL & length <= 0) { return; } int originalLength = 0; int numberOfBlank = 0; int i = 0; while(string[i] != '\0') { ++originalLength; if(string[i] == ' ') { ++numberOfBlank; } i++; } int newLength = originalLength + numberOfBlank*2; if(newLength>length) { return; } int indexOfOriginal = originalLength; int indexOfNew = newLength; while (indexOfOriginal>=0 && indexOfNew>indexOfOriginal) { if(string[indexOfOriginal]==' ') { string[indexOfNew--] = '0'; string[indexOfNew--] = '2'; string[indexOfNew--] = '%'; } else { string[indexOfNew--] = string[indexOfOriginal]; } --indexOfOriginal; } }void main(){ char m1[30] = "We are happy."; ReplaceBlank(m1,30); printf("%s\n",m1); //test2:blank in first char m2[30] = " We are happy."; ReplaceBlank(m2,30); printf("%s\n",m2); //test3:blank in last char m3[30] = "We are happy. "; ReplaceBlank(m3,30); printf("%s\n",m3); //test4:blank continue char m4[30] = "We are happy."; ReplaceBlank(m4,30); printf("%s\n",m4); //test5:no blank char m5[30] = "Wearehappy."; ReplaceBlank(m5,30); printf("%s\n",m5); //test6:NULL char m6[30]; ReplaceBlank(m6,30); printf("%s\n",m6); //test7:NULL char m7[30] = ""; ReplaceBlank(m7,30); printf("%s\n",m7); //test8:only one black char m8[30] = " "; ReplaceBlank(m8,30); printf("%s\n",m8); //test9:only 3black continue char m9[30] = " "; ReplaceBlank(m9,30); printf("%s\n",m9);}
输出结果:
We%20are%20happy.%20We%20are%20happy.We%20are%20happy.%20We%20%20are%20%20happy.Wearehappy.%20%20%20%20Program ended with exit code: 10
0 0
- 《剑指offer》在mac上编译通过的代码
- 《编程之美》在mac上编译通过的代码
- 在Wndows 上用CodeBlockes 写的代码移植到Mac OSX上,使用Xcode 编译
- proxygen在mac上的编译
- 在Mac上编译CURL
- 在mac上编译openssl
- 在mac上编译htk
- 在mac上编译lame
- libcurl在mac上编译
- Mac上利用Eclipse编译Cocos2d-x的C++代码
- Mac上利用Eclipse编译Cocos2d-x的C++代码
- 从网页上复制下来的代码无法通过编译
- wxWidgets 2.9.2 在 mac os x 10.6 上编译通过
- irrlicht 在 mac上编译出错的解决办法
- tesseract3.0.2在mac 10.10上的编译 xcode6
- Jenkins在Mac上的使用,关于Xcode编译问题
- 通过源码编译的方式在fedora上安装node
- 在mac上通过Homebrew安装redis
- /includes/cls_template.php on line 406 Ecshop出现问题
- ROS学习笔记(二):利用opencv将本地图片转换成ROS格式
- CentOS7下通过yum安装MySQL5.7
- 杭电ACM2011:多项式求和
- ajax异步传输数据时return返回总是undefined,解决
- 《剑指offer》在mac上编译通过的代码
- java方法return说明
- poj1011——Sticks(dfs+剪枝)
- Map集合中遍历的几种方式
- MYSQL学习篇之001-LINUX环境MYSQL源代码安装总结
- ompl
- 模拟ATM机
- selenium错误"element not visible"问题
- centos6中yum的安装