//题目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"); }