题解 | #表示数字#

表示数字

https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6?tpId=37&tqId=21319&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D4%26pageSize%3D30%26search%3D%26tpId%3D37%26type%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=

#include <stdio.h>

int main() {
    char a[500];
    while (scanf("%s",a) != EOF) { 
        int n=0,i,j,k;
        while(a[n]!=0) n++;
	  //自己插一个非数字的首字符
            for(j=n;j>-1;j--)
                a[j+1]=a[j];
                n++;
                a[0]='*';

        for(i=0;i<n;i++){
            if(((a[i]<'0'||a[i]>'9')&&(a[i+1]>='0'&&a[i+1]<='9'))||((a[i+1]<'0'||a[i+1]>'9')&&(a[i]>='0'&&a[i]<='9')))
            {
                for(j=n;j>i;j--)
                a[j+1]=a[j];
                n++;
                a[i+1]='*';
                i++;
            }
           
        }
//输出
       for(i=1;i<n;i++)
        printf("%c",a[i]);
    }
    return 0;
}

恶心的在于第一个字符是数字很难处理,这个时候就直面困难,自己插一个非数字的首字符,输出的时候跳过就行

全部评论

相关推荐

牛客410815733号:这是什么电影查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务