You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为C#素数查找程序添加结果保存至文件的询问菜单?

修改后的素数查找程序(含保存功能)

没问题!我已经帮你修改了这段素数查找的C#代码,添加了询问是否保存结果到文件的交互菜单,同时实现了保存功能。下面是更新后的完整代码,以及关键改动的说明:

关键改动点

  • 新增List<int>存储找到的素数,方便后续输出与文件写入,避免重复计算
  • 添加交互式询问菜单,让用户自主选择是否保存结果
  • 引入System.IO命名空间,实现文件写入功能,默认将素数保存到程序运行目录下的primes.txt文件
  • 增加用户输入合法性判断与异常捕获,提升程序健壮性

完整代码

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

public class Exercise34
{
    public static void Main()
    {
        int num, i, ctr, stno, enno;
        // 用于存储找到的素数
        List<int> primes = new List<int>();

        Console.Write("\n\n");
        Console.Write("Find the prime numbers within a range of numbers:\n");
        Console.Write("---------------------------------------------------");
        Console.Write("\n\n");

        Console.Write("Input starting number of range: ");
        stno = Convert.ToInt32(Console.ReadLine());
        Console.Write("Input ending number of range : ");
        enno = Convert.ToInt32(Console.ReadLine());

        Console.Write("The prime numbers between {0} and {1} are : \n", stno, enno);
        for (num = stno; num <= enno; num++)
        {
            ctr = 0;
            for (i = 2; i <= num / 2; i++)
            {
                if (num % i == 0)
                {
                    ctr++;
                    break;
                }
            }
            if (ctr == 0 && num != 1)
            {
                primes.Add(num);
                Console.Write("{0} ", num);
            }
        }
        Console.Write("\n");

        // 询问是否保存结果到文件
        Console.WriteLine("\n是否要将找到的素数保存到文件中?(Y/N)");
        string input = Console.ReadLine().Trim().ToUpper();

        if (input == "Y")
        {
            try
            {
                // 将素数转换为字符串数组并写入文件
                File.WriteAllLines("primes.txt", primes.Select(p => p.ToString()));
                Console.WriteLine("素数已成功保存到当前目录下的 primes.txt 文件!");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"保存失败:{ex.Message}");
            }
        }
        else if (input == "N")
        {
            Console.WriteLine("已取消保存操作。");
        }
        else
        {
            Console.WriteLine("输入无效,已取消保存操作。");
        }

        // 可选:让程序暂停,方便查看结果
        Console.WriteLine("\n按任意键退出...");
        Console.ReadKey();
    }
}

功能说明

  1. 素数存储:使用List<int>收集所有符合条件的素数,后续输出和保存都基于这个列表,避免了重复遍历计算。
  2. 交互询问:程序结束前会提示用户输入Y或N,判断是否执行保存操作。
  3. 文件保存:如果用户选择保存,程序会在当前运行目录生成primes.txt文件,每行一个素数。同时添加了异常捕获,处理可能的权限不足、磁盘空间不足等问题。
  4. 健壮性优化:对用户输入的Y/N做了大小写转换和修剪,同时处理了非预期输入的情况。

内容的提问来源于stack exchange,提问作者tynai cha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:05:47