您的位置:首页 > 编程语言 > C语言/C++

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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: