【发布时间】:2020-08-18 10:08:32
【问题描述】:
我正在读这本书,就像一个程序员一样思考。然而,一切都是用 C++ 完成的,我正在用 C# 做练习。我在将部分转换为 c# 时遇到问题。我将发布问题、本书的 c++ 代码以及我在 c# 中的尝试。 if 语句为空,我最初尝试使用 Readline,然后转换为 char,现在切换到将其作为字符串读取,然后转换为 char。
问题:用三个或读取一个数字 四位数,进一步简化
编写一个程序来逐个字符地读取数字并将其转换为整数,只使用一个 char 变量和两个 int 变量。该号码将有三位数或四位数。
cout << "Enter a three-digit or four-digit number: ";
char digitChar = cin.get();
int threeDigitNumber = (digitChar - '0') * 100;
int fourDigitNumber = (digitChar - '0') * 1000;
digitChar = cin.get();
threeDigitNumber += (digitChar - '0') * 10;
fourDigitNumber += (digitChar - '0') * 100;
digitChar = cin.get();
threeDigitNumber += (digitChar - '0');
fourDigitNumber += (digitChar - '0') * 10;
digitChar = cin.get();
if (digitChar == 10) {
cout << "Numbered entered: " << threeDigitNumber << "\n";
} else {
fourDigitNumber += (digitChar - '0');
cout << "Numbered entered: " << fourDigitNumber << "\n";
}
我的代码:
Console.WriteLine("Enter in your 3 or 4 digit number");
string stringDigit = Console.ReadLine();
char charDigit = char.Parse(stringDigit);
//convert the char to an int and the correct place value
int threeDigitNumber = (charDigit - '0') * 100;
int fourDigitNumber = (charDigit - '0') * 1000;
stringDigit = Console.ReadLine();
charDigit = char.Parse(stringDigit);
threeDigitNumber += (charDigit - '0') * 10;
fourDigitNumber += (charDigit - '0') * 100;
stringDigit = Console.ReadLine();
charDigit = char.Parse(stringDigit);
threeDigitNumber += (charDigit - '0');
fourDigitNumber += (charDigit - '0') * 10;
stringDigit = Console.ReadLine();
charDigit = char.Parse(stringDigit);
//check if the number is a 3 or 4 digit number
if ()//unsure what to check
{
Console.WriteLine("Numbered entered is: " + threeDigitNumber);
}
else
{
fourDigitNumber += (charDigit - '0');
Console.WriteLine("Numbered entered is: " + fourDigitNumber);
}
【问题讨论】: