编程实现,输入一个五位数以内的正整数,判断它是一个几位数,按顺序输出其各位数,按逆序输出其各位数。

编程实现,输入一个五位数以内的正整数,判断它是一个几位数,按顺序输出其各位数,按逆序输出其各位数。如输入:56439,输出5位数
5,6,4,3,9
9,3,4,6,5

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace test6
{
    class Program
    {
        static void Main(string[] args)
        {
            int num = 0;
            Console.WriteLine("请输入一个五位数以内的正整数,完成后请按回车:");
            while (true)
            {
                string tmpStr = Console.ReadLine();
                if (Regex.IsMatch(tmpStr, "^(\\d{1,5})$"))
                {
                    num = Convert.ToInt32(tmpStr);
                    break;
                }
                else
                    Console.WriteLine("输入有误,请重新输入:");
            }
            Console.WriteLine(string.Format("输入的数字{0}是一个{1}位数", num, num.ToString().Length));
            Console.WriteLine(string.Format("顺序输出:{0}", string.Join(",", num.ToString().ToCharArray())));
            Console.WriteLine(string.Format("逆序输出:{0}", string.Join(",", num.ToString().ToCharArray().Reverse())));
            Console.Write("按任意键结束");
            Console.ReadKey();
        }
    }
}

追问

可以用CFree5文件的格式做吗?谢谢了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-01-04
#include <stdio.h>
#include <math.h>

int getCount(int num)
{
    if (num / 10000) return 5;
    if (num / 1000) return 4;
    if (num / 100) return 3;
    if (num / 10) return 2;
    else return 1;
}

int main()
{
    int num, tmp;
    int digit[5], rev_digit[5];
    int count;
    printf("Please input a number(1~99999):");
    scanf("%d", &num);
    while (num <= 0 || num >= 100000) {
        printf("Input error! Please input a number(1~99999) again:");
        scanf("%d", &num);
    }
    count = getCount(num);
    printf("是 %d 位数\n", count);
    tmp = num;
    for (int i = 0; i < count; i ++) {
        digit[i] = tmp / pow(10, count - 1 - i);
        tmp %= (int)pow(10, count - 1 - i);
    }
    tmp = num;
    for (int i = count - 1; i >= 0; i --) {
        rev_digit[i] = tmp / pow(10, i);
        tmp %= (int)pow(10, i);
    }
    for (int i = 0; i < count; i ++) {
        printf("%d,", digit[i]);
    }
    printf("\n");
    for (int i = 0; i < count; i ++) {
        printf("%d,", rev_digit[i]);
    }
    printf("\n");

    return 0;
}

本回答被网友采纳
相似回答