404 Not Found

404 Not Found


nginx

实战:入门综合练习

温度转换器

目标:实现摄氏度与华氏度的双向转换,用户输入选择转换方向和温度值,程序输出转换结果。

要求:

转换公式:

示例

CSHARP
Console.WriteLine("温度转换器");
Console.WriteLine("1. 摄氏度 → 华氏度");
Console.WriteLine("2. 华氏度 → 摄氏度");
Console.Write("请选择(1或2):");
string choice = Console.ReadLine();

if (choice == "1")
{
    Console.Write("请输入摄氏温度:");
    double celsius = double.Parse(Console.ReadLine());
    double fahrenheit = celsius * 9 / 5 + 32;
    Console.WriteLine($"{celsius}°C = {fahrenheit:F2}°F");
}
else if (choice == "2")
{
    Console.Write("请输入华氏温度:");
    double fahrenheit = double.Parse(Console.ReadLine());
    double celsius = (fahrenheit - 32) * 5 / 9;
    Console.WriteLine($"{fahrenheit}°F = {celsius:F2}°C");
}
else
{
    Console.WriteLine("无效选择,请输入1或2。");
}
▶ 试一试
TEXT
温度转换器
1. 摄氏度 → 华氏度
2. 华氏度 → 摄氏度
请选择(1或2):1
请输入摄氏温度:100
100°C = 212.00°F
TEXT
温度转换器
1. 摄氏度 → 华氏度
2. 华氏度 → 摄氏度
请选择(1或2):2
请输入华氏温度:32
32°F = 0.00°C

简易计算器

目标:实现一个支持四则运算的计算器,用户输入两个数和运算符,程序输出计算结果,并处理除零错误。

要求:

示例

CSHARP
Console.Write("请输入第一个数字:");
double num1 = double.Parse(Console.ReadLine());

Console.Write("请输入运算符(+ - * /):");
string op = Console.ReadLine();

Console.Write("请输入第二个数字:");
double num2 = double.Parse(Console.ReadLine());

double result;

switch (op)
{
    case "+":
        result = num1 + num2;
        Console.WriteLine($"{num1} + {num2} = {result}");
        break;
    case "-":
        result = num1 - num2;
        Console.WriteLine($"{num1} - {num2} = {result}");
        break;
    case "*":
        result = num1 * num2;
        Console.WriteLine($"{num1} * {num2} = {result}");
        break;
    case "/":
        if (num2 == 0)
        {
            Console.WriteLine("错误:除数不能为零!");
        }
        else
        {
            result = num1 / num2;
            Console.WriteLine($"{num1} / {num2} = {result}");
        }
        break;
    default:
        Console.WriteLine("无效的运算符!");
        break;
}
▶ 试一试
TEXT
请输入第一个数字:10
请输入运算符(+ - * /):+
请输入第二个数字:3.5
10 + 3.5 = 13.5
TEXT
请输入第一个数字:8
请输入运算符(+ - * /):/
请输入第二个数字:0
错误:除数不能为零!

猜数字游戏

目标:程序随机生成1到100的整数,用户反复猜测,程序提示"太大"或"太小",直到猜中并显示尝试次数。

要求:

示例

CSHARP
Random random = new Random();
int target = random.Next(1, 101);
int guess;
int attempts = 0;

Console.WriteLine("猜数字游戏(1~100)");

do
{
    Console.Write("请输入你的猜测:");
    guess = int.Parse(Console.ReadLine());
    attempts++;

    if (guess > target)
    {
        Console.WriteLine("太大了!");
    }
    else if (guess < target)
    {
        Console.WriteLine("太小了!");
    }
    else
    {
        Console.WriteLine($"恭喜你猜中了!答案是 {target},你共尝试了 {attempts} 次。");
    }
} while (guess != target);
▶ 试一试
TEXT
猜数字游戏(1~100)
请输入你的猜测:50
太小了!
请输入你的猜测:75
太大了!
请输入你的猜测:62
太小了!
请输入你的猜测:68
恭喜你猜中了!答案是 68,你共尝试了 4 次。

打印星号图案

目标:使用嵌套 for 循环打印两种常见星号图案——直角三角形和金字塔,练习循环与字符串拼接。

要求:

示例

CSHARP
Console.Write("请输入行数:");
int rows = int.Parse(Console.ReadLine());

Console.WriteLine("直角三角形:");
for (int i = 1; i <= rows; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}

Console.WriteLine("金字塔:");
for (int i = 1; i <= rows; i++)
{
    for (int s = 1; s <= rows - i; s++)
    {
        Console.Write(" ");
    }
    for (int j = 1; j <= 2 * i - 1; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}
▶ 试一试
TEXT
请输入行数:5
直角三角形:
*
**
***
****
*
金字塔:
    *
   ***
  *
 ***
*****

❓ 常见问题

Q double.Parse 输入非数字会怎样?
A 会抛出 FormatException 异常,实际项目中应使用 double.TryParse 来安全转换。
Q Random.Next(1, 101) 为什么上限是101?
A 该方法是左闭右开区间,Next(1, 101) 生成1到100的整数,不包含101。
Q 金字塔每行星号数怎么计算?
A 第 i 行的星号数为 2 * i - 1,即第1行1颗、第2行3颗、第3行5颗,依次递增。
Q do...whilewhile 有什么区别?
A do...while 至少执行一次循环体,while 可能一次都不执行。猜数字游戏至少需要猜一次,所以用 do...while 更合适。

📖 小节

📝 作业

  1. 为温度转换器添加循环功能,让用户可以反复转换直到输入 q 退出。
  2. 为简易计算器增加取模运算(%)的支持。
  3. 改进猜数字游戏:当用户输入非数字时提示重新输入,而不崩溃。
  4. 打印倒金字塔图案(最宽行在上,最窄行在下)。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏