数据结构 第四章课后题 (2)(4)(6)


(2)
void NIXU(char A[])
{
    char ch;
    static int i=0;
    scanf("%c",&ch);
    if(ch!='.')
    {
        NIXU(A);
        A[i++]=ch;
    }
    A[i]='\0';
}
(4)
void format(char *s1,char *s2,char *s3,int n)
{
    //格式化成n长度的s2字符串
    char *p=s1,*q=s2;
    int i=0;
    while(*p!='\0'&&*p==' ')  p++;//滤掉 s1左端的空格
    if(*p=='\0')
    {
        printf("s1是空串或空格串\n");
        exit(0);
    }
    while(*p!='\0'&&i<n)
    {
        *q=*p;
        p++;
        q++;
        i++;
    }
    if(*p=='\0')
    {
        printf("s1串没有%d个字符\n",n);
        exit(0);
    }
    if(*(--q)==' ')//s2尾字符不得为空字符
    {
        p--;
        while(*p!='\0'&&*p==' ')
        {
            p++;
        }
        if(*p=='\0')
        {
            printf("s1串没有%d个字符\n",n);
            exit(0);
        }
        *q=*p;
        *(++q)='\0';
    }
    //多余字符送s3
    *q=s3;
    p++;
    while(*p!='\0')
    {
        *q=*p;
        q++;
        p++;
    }
    *(++q)='\0';    
}
(6)
void paixu(char A[],int n)
{
    int i=0;j=n-1;
    while(i<j)
    {
        while(i<j&&A[i]>0)//前面的正数
            i++;
        while(i<j&&A[j]<0)//后面的负数
            j--;
        if(i<j)//正负交换
        {
            int x=A[i++];
            A[i]=A[j];
            A[j]=x;
        }
    }
}
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值