找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3608

积分

0

好友

472

主题
发表于 5 小时前 | 查看: 4| 回复: 0

1. 检查闰年

判断闰年的逻辑很简单:年份能被4整除但不能被100整除,或者能被400整除。这段代码展示了如何将用户输入转换为整数并进行条件判断。

using System;
class LeapYear {
    static void Main() {
        Console.WriteLine("Enter a year: ");
        int year = Convert.ToInt32(Console.ReadLine());
        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
            Console.WriteLine("Leap Year");
        else
            Console.WriteLine("Not a Leap Year");
    }
}

2. 反转数组

借助 Array.Reverse 方法,一行代码就能完成数组反转。当然,理解其背后的原理对深入学习算法与数据结构会有很大帮助。

using System;
class ArrayReverse {
    static void Main() {
        int[] arr = { 1, 2, 3, 4, 5 };
        Array.Reverse(arr);
        Console.Write("Reversed Array: ");
        foreach (int element in arr) {
            Console.Write(element + " ");
        }
    }
}

3. 回文检查

回文串正读反读都一样。这个例子先将字符串转为字符数组并反转,再与原始字符串比较,同时通过 StringComparison.OrdinalIgnoreCase 忽略了大小写,让判断更灵活。

using System;
class Palindrome {
    static void Main() {
        Console.WriteLine("Enter a string: ");
        string input = Console.ReadLine();
        char[] charArray = input.ToCharArray();
        Array.Reverse(charArray);
        string reversedString = new string(charArray);
        if (input.Equals(reversedString, StringComparison.OrdinalIgnoreCase))
            Console.WriteLine("Palindrome");
        else
            Console.WriteLine("Not a Palindrome");
    }
}

4. 打印字符的ASCII值

每个字符在计算机中都对应一个整数编码,也就是ASCII值。通过强制类型转换 (int)ch,你可以轻松拿到想要的结果。

using System;
class ASCIIValue {
    static void Main() {
        Console.WriteLine("Enter a character: ");
        char ch = Convert.ToChar(Console.ReadLine());
        int asciiValue = (int)ch;
        Console.WriteLine("ASCII Value: " + asciiValue);
    }
}

5. 生成随机数

Random 类提供了一种生成伪随机数的简便方式。下面的循环会打印5个1到100之间的随机整数,这在模拟、测试等场景中很常用。

using System;
class RandomNumbers {
    static void Main() {
        Random random = new Random();
        Console.WriteLine("Random Numbers: ");
        for (int i = 0; i < 5; i++) {
            Console.WriteLine(random.Next(1, 100));
        }
    }
}

6. 检查阿姆斯特朗数

阿姆斯特朗数(也叫自恋数)指的是一个n位数,其各位数字的n次方之和等于它本身。以下代码仅针对三位数做了计算:取余、立方、累加,最后比对。

using System;
class ArmstrongNumber {
    static void Main() {
        Console.WriteLine("Enter a number: ");
        int num = Convert.ToInt32(Console.ReadLine());
        int originalNumber, remainder, result = 0;
        originalNumber = num;
        while (originalNumber != 0) {
            remainder = originalNumber % 10;
            result += remainder * remainder * remainder;
            originalNumber /= 10;
        }
        if (result == num)
            Console.WriteLine("Armstrong Number");
        else
            Console.WriteLine("Not an Armstrong Number");
    }
}

7. 冒泡排序

冒泡排序是最直观的排序算法之一。它像水里的气泡一样,把较大的元素逐步“浮”到数组末尾。尽管时间复杂度不占优势,但写起来非常直接。

using System;
class BubbleSort {
    static void Main() {
        int[] arr = { 64, 34, 25, 12, 22, 11, 90 };
        for (int i = 0; i < arr.Length - 1; i++) {
            for (int j = 0; j < arr.Length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        Console.Write("Sorted Array: ");
        foreach (int element in arr) {
            Console.Write(element + " ");
        }
    }
}

8. 二分查找

二分查找要求数组必须是有序的。它每次都将搜索范围缩小一半,效率远高于逐个遍历。注意 mid 的计算方式避免了潜在的溢出问题。

using System;
class BinarySearch {
    static int Search(int[] arr, int x) {
        int left = 0, right = arr.Length - 1;
        while (left <= right) {
            int mid = left + (right - left) / 2;
            if (arr[mid] == x)
                return mid;
            if (arr[mid] < x)
                left = mid + 1;
            else
                right = mid - 1;
        }
        return -1;
    }
    static void Main() {
        int[] arr = { 2, 3, 4, 10, 40 };
        int x = 10;
        int result = Search(arr, x);
        if (result == -1)
            Console.WriteLine("Element not present");
        else
            Console.WriteLine("Element found at index " + result);
    }
}

9. 检查字符串是否为变位词

如果两个字符串包含完全相同的字符(忽略大小写),只是排列顺序不同,那它们就是变位词。这里用排序对齐后再比较,思路清晰。

using System;
class AnagramCheck {
    static void Main() {
        Console.WriteLine("Enter the first string: ");
        string str1 = Console.ReadLine();
        Console.WriteLine("Enter the second string: ");
        string str2 = Console.ReadLine();
        char[] charArray1 = str1.ToLower().ToCharArray();
        char[] charArray2 = str2.ToLower().ToCharArray();
        Array.Sort(charArray1);
        Array.Sort(charArray2);
        string sortedStr1 = new string(charArray1);
        string sortedStr2 = new string(charArray2);
        if (sortedStr1.Equals(sortedStr2))
            Console.WriteLine("Anagrams");
        else
            Console.WriteLine("Not Anagrams");
    }
}

10. 打印ASCII表

这个示例会遍历0到255,输出每个数值及其对应的字符。控制台可能会显示很多空白或特殊符号——想一想,为什么有些“字符”看起来什么也没打印?

using System;
class ASCIITable {
    static void Main() {
        Console.WriteLine("ASCII Table: ");
        for (int i = 0; i < 256; i++) {
            Console.WriteLine("ASCII Value: " + i + ", Character: " + (char)i);
        }
    }
}

动手抄一遍这些基础代码,比光看不练有效得多。如果你正在系统性地巩固 C# 编程基础,云栈社区也整理了不少关于面向对象与程序开发的实战心得,遇到问题时多查多问,成长的瓶颈往往就是这样慢慢突破的。




上一篇:在 Ubuntu 上搭建远程 VS Code:Code-Server 安装与避坑指南
下一篇:PCB线圈平面变压器设计指南:如何避免涡流及电源平面噪声
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-30 09:26 , Processed in 0.611729 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表