今天在学习C#运算符和数据类型转换后,老师留了一个这样的练习,让用户在控制台中输入一个四位整数,计算每位相加和。
看到这个练习我首先想到的一个问题就是如何让用户只能输入一个四位的整数,查阅资料后想到我的这个问题现在超出了现在我所学的内容,所以这个问题暂时搁置,以后来解决。
根据老师的提示以及我现在所学的知识,我们可以用两种办法来解决
方案一:从整数中获取每位
using System;
namespace 练习
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个四位整数:");
string a = Console.ReadLine();
//由于读取只能是字符串类型,所以我们先做一个数据类型的转换
int number = int.Parse(a);
//然后可以取模来获取位数
int a1 = number % 10;//获取个位
int a2 = (number % 100)/10;//获取十位
int a3 = (number % 1000) / 100;//获取百位
int a4 = number / 1000;//获取千位
int result = a1 + a2 + a3 + a4;//位数相加
Console.WriteLine("位数之和为:"+result);
}
}
}
方案二:从字符串中获取每个字符
using System;
namespace 练习
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个四位整数:");
string number = Console.ReadLine();
//char类型可以先转换成string类型,再由string类型转换为int类型
int r1 = int.Parse(number[0].ToString());//获取千位
int r2 = int.Parse(number[1].ToString());//获取百位
int r3 = int.Parse(number[2].ToString());//获取十位
int r4 = int.Parse(number[3].ToString());//获取个位
int result = r1 + r2 + r3 + r4;//求和
Console.WriteLine("位数相加之和为:" + result);
}
}
}
数据类型的转换的详细过程:
char c1 = number[0];//获取number字符串的第一个字符 string a1 = c1.ToString();//将它转化为string类型 int b1 = int.Parse(a1);//将a1转换为int类型 int r1 = b1;//获取千位
我一开始就是这样做的,但发现要定义的变量实在太多,我就参考了一些大佬们的做法,学到了。
总结错误:我个人在做练习的过程中,由于我是编程小萌新,也是出现了一些很低级的错误;
受C语言的影响,我在输出语句部分把输入result写成了",result",实际C#当中需要的是"+result",
导致我才控制台中看不到result的输出结果,第一次接触"+变量"其实是在第一节课字符的拼接,当时我对这个有疑惑,不过这次大概也是懂了。其他的问题倒还暂时没有,等后面学习了更多的知识,再来解决做题目前想到的问题,即只能让用户在控制台输入四位数的整数。
如果有错误或更好的解决方法,欢迎指正!



