C# 字符提取和整數整除

本文展示了一个C#控制台应用程序,用于接收用户输入的大于100的整数,然后通过字符提取和整数整除两种方法分别输出每位数值并计算它们的总和。程序首先将输入的整数转换为字符串,通过遍历字符串获取每位字符并转换为整数求和。接着,利用整数的取整和求余运算求出每位数并累加。程序运行时,用户可以反复输入并查看结果,直到按下回车键退出。
摘要由CSDN通过智能技术生成

C# 字符提取和整数整除练习(Console)

用控制台应用程序实现下列功能:从键盘接收一个大于100的整数,然后分别输出该整数每一位的值,并且输出这些为相加的结果。要求分别用字符提取法和整数整除法实现。字符提取法是指先将整数转换为字符串,然后依次取字符串中的每个字符,再将每个字符转换为整数求和。整数整除法是指利用取整和求余数的方法求每一位的值,再求这些位的和。
程序運行效果如圖:
在这里插入图片描述

代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lianxi
{
    class Program
    {
        static void Main(string[] args)
        {

            while (true)
            {
                Console.Write("请输入一个大于100的数:");
                string str = Console.ReadLine();
                int a = int.Parse(str);//將輸入的數字轉化成整型
                int length = Math.Abs(a).ToString().Length;//計算輸入的數字的長度
                Console.WriteLine("该整数共有" + length + "位");
                Console.Write("实现思路1:每一位的值为");
                //字符提取法
                int sum = 0;
                int l;
                for (int i = 0; i < length; i++)
                {
                    if (i != length - 1)//運用if輸出‘、’和‘,’,如果不需要,也可以不寫if語句
                    {
                        Console.Write(str[i] + "、");
                        l = str[i] - '0';
                    }
                    else
                    {
                        Console.Write(str[i] + ",");
                        l = str[i] - '0';//此處減去‘0’,表示使用字符值,而不是ASCII碼值;如果減去0,則得出的是ASCII碼值
                    }
                    sum = sum + l;
                }
                Console.WriteLine("这些位之和为" + sum);
                
                //整數整除法
                int x = a;
                int sum1 = 0;
                Console.Write("实现思路2:每一位的值为");
                for (int i = length - 1; i >= 0; i--)
                {
                    int j = (int)Math.Pow(10, i);//定義10的i次方等於j
                    int a1 = x / j;
                    if (i != 0)
                    {
                        Console.Write(a1 + "、");
                    }
                    else
                    {
                        Console.Write(a1 + ",");
                    }
                    x = x % j;
                    sum1 = sum1 + a1;
                }
                Console.WriteLine("这些位之和为" + sum1);
                Console.WriteLine("按回車鍵退出,按任意键继续");
                if (Console.ReadKey(true).Key == ConsoleKey.Enter) break;//判斷輸入,如果輸入的是回車鍵,則退出
            }
        }
    }
}

ps:小白第一次寫,有很多不妥的地方,希望大家多多包涵。希望與大家一起共同進步。

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值