C语言 百炼成钢18
2016-03-07 23:20
411 查看
//题目52:用递归打印以下图形 //* //*.*. //*..*..*.. //*...*...*...*... //*....*....*....*....*.... #include<stdio.h> #include<stdlib.h> //分析:熟练使用递归,递归比较难以理解,可以先写出for循环,再写递归 //递归的一般形式 //void 函数名(参数列表){ // if (终止条件) // { // return; // } // else{ // //执行的操作 // //调用本身 // } //} int m = 0, n = 0; void run111(int num){ if (num==0) { return; } else{ printf("*"); for (int k = 0; k < n - 1; k++) { printf("."); } run111(num - 1); // } } void run10(int num){ if (num == 10) { return; } else{ m = n = num; run111(num); printf("\n"); run10(num + 1); } } void main(){ run10(1); /*int m = 0,n=0; for (int i = 1; i < 10; i++) { m=n = i; while (m){ printf("*"); for (int k = 0; k < n - 1; k++) { printf("."); } m--; } printf("\n"); }*/ system("pause"); }
//题目53:有一个字符串开头或结尾含有n个空格(” abcdefgdddd ”),欲去掉前后空格,返回一个新字符串。 //请自己定义一个接口(函数),并实现功能 #include<stdio.h> #include<stdlib.h> int trimSpace(char *pin, char *pout){ //定义返回数据 int ERRO_MSG = 0; //检测输入数据 if (pin == NULL||pout==NULL) { ERRO_MSG = 1; printf("pin == NULL||pout==NULL err0 msg:%d\n", ERRO_MSG); return ERRO_MSG; } //遍历输入字符串 while (*pin != '\0'){ //ascll码中 32是空格 //判断字符是否是空格 if (*pin!=32) { //如果不是空格压入字符数组pout中 *pout++ = *pin; } pin++; } //字符串是以'\0'结尾的 *pout = '\0'; return ERRO_MSG; } void main(){ char *p = " abcdefgd ddd"; //定义新字符串数组 char p1[20]; //调用函数 trimSpace(p, p1); printf("%s\n", p1); system("pause"); }
//题目54:有一个字符串”1a2b3d4z”,; //要求写一个函数实现如下功能, //功能1:把偶数位字符挑选出来,组成一个字符串1。valude;20分 //功能2:把奇数位字符挑选出来,组成一个字符串2,valude 20 //功能3:把字符串1和字符串2,通过函数参数,传送给main,并打印。 //功能4:主函数能测试通过。 #include<stdio.h> #include<stdlib.h> //分析:需要输入2个字符串,加上原始字符串,需要三个参数 int getStr1Str2(char *pin,char *pout1,char *pout2){ int ERRO_MSG = 0; int index = 0; //判断传入数据是否规范 if (pin == NULL || pout1 == NULL || pout2==NULL) { ERRO_MSG = 1; printf("pin == NULL || pout1 == NULL || pout2==NULL err0 msg:%d\n", ERRO_MSG); return ERRO_MSG; } do{ if (index%2==0) { //奇数 *pout1++ = *pin; } else{ //偶数 *pout2++ = *pin; } index++; } while (*pin++ != '\0'); *pout1 = *pout2 = '\0'; return ERRO_MSG; } void main(){ char *p = "1a2b3d4z"; char p1[10], p2[10]; //p1奇数 p2偶数 getStr1Str2(p, p1, p2); printf("奇数字符串是%s,偶数字符串是%s\n",p1,p2); system("pause"); }
相关文章推荐
- 【总结】C++静态成员变量的特性总结及测试用例
- 8. String to Integer (atoi) ---Leetcode
- ubuntu下编写编译C++程序
- C++第1次实验(两个数的和与差)
- ubuntu下利用gcc编译C语言程序
- c++双链表【构造函数、运算符重载、析构函数、增删查改及逆置等】
- 类的前向声明
- c++宽字符处理
- C++explicit的用法
- C++学习之构造函数、析构函数
- C++ DirectX 游戏开发中级视频教程 03 资源下载链接
- C++11 智能指针——shared_ptr
- c语言之指针调用注意
- c++单链表【构造函数、运算符重载、析构函数、增删查改等】
- iOSDay02C语言分支结构
- C语言里的文件函数
- C++学习之类的构造函数、析构函数
- C语言的编译和链接
- C语言常用算法汇总
- C++封装学习(二)