程序基础(二)

此篇主要是在学习了程序基础后,编写的基础性综合小程序示例。

示例1:写一个函数,功能是提示并获取用户输入的数,判断该数是奇数还是偶数。然后,在主函数中调用两次该函数。

主函数:

static void Main(string[] args)
        {
            Console.Write("请输入一个整数:");
            int input = int.Parse(Console.ReadLine());
            IsOdd(input);//函数调用            Console.ReadLine();}

判断奇偶性的函数:

static void IsOdd(int n){
           if (n > 0){
               if (n % 2 == 0){
                   Console.Write("您输入的是偶数");
               }
               else{
                   Console.Write("您输入的是奇数");
               }
           }
           else{
               Console.Write("输入错误!");
           }
       }

示例2:

public static void Main(string[] args){
    int n = 1;
    test();
    Console.WriteLine(n);
    Console.ReadLine();
}
static void test(){
    int n = 0;
    n++;
    Console.WriteLine(n);
}
上面的代码运行后会输出什么?答案:1和1

示例3:写一个函数遍历输出一个int数组中所有的内容

//主函数中测试
public static void Main(string[] args){
    //测试1
    int[] nums = { 3, 4, 6, 83, 2 };
    PrintArray(nums);
    //测试2
    PrintArray(new int[] { 34, 21, 2 });
    Console.ReadLine();
}
//遍历数组
static void PrintArray(int[] nums){
    foreach (int item in nums){
        Console.Write(item + "\t");
    }
    Console.WriteLine();
}

示例4:写一个函数,对一个int类型的数组进行升序排序

public static void Main(string[] args){
    int[] nums = { 3, 4, 5, 7, 2, -33, 444 };
    Sort(nums);
    Console.Write("排序后:");
    foreach (int item in nums){
        Console.Write(item + "\t");
    }
    Console.ReadLine();
}
//排序函数
static void Sort(int[] nums){
    for (int i = 0; i < nums.Length - 1; i++){
        //在 i-(nums.Length-1) 范围内,将该范围内最小的数字提到i
        for (int j = i + 1; j < nums.Length; j++){
            if (nums[i] > nums[j]){
                //交换
                int temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
            }
        }
    }
}

示例5:写一个函数,对一个数组求和,得到求和结果,然后在主函数中,测试该函数,输出求和的结果

public static void Main(string[] args){
    int[] nums = { 3, 4, 5, 7, 2, -33, 444 };
    Console.WriteLine("数组中的所有项之和为:" + GetSum(nums));
    Console.ReadLine();
}
static int GetSum(int[] nums){
    int sum = 0;
    foreach (var item in nums){
        sum += item;
    }
    return sum;//返回值为int类型
}

示例6:编写函数,判断一个数是不是质数;然后在主函数中做以下功能:

  1.输出一个数组中所有的素数

  2.求一个数组中的所有素数之和

public static void Main(string[] args){
    int[] nums = { 3, 4, 5, 7, 2, -33, 444 };
    //1.输出一个数组中所有的素数
    foreach (int item in nums){
        if (IsPrime(item)){
            Console.Write(item + "\t");
        }
    }
    Console.WriteLine();
    //2.求一个数组中的所有素数之和
    int sum = 0;
    foreach (int item in nums){
        if (IsPrime(item)){//通过调用判断质数的函数实现条件判断
            sum += item;
        }
    }
    Console.WriteLine("素数之和为:" + sum);
    Console.ReadLine();
}
//判断质数的函数
static bool IsPrime(int n){
        if (n < 2){
            return false;
        }
        for (int i = 2; i < n; i++){
            if (n % i == 0)
            {
                return false;//不是质数返回false
            }
        }
        return true;
}

示例7:一个数n的阶乘,记作:n!,它等于1*2*3*...*n;也可以理解为n的阶乘等于n乘以n-1的阶乘:n!=n*(n-1)!;尝试利用递归的思想,完成一个函数,该函数用于求某个数的阶乘。

/// <summary>
/// 求n的阶乘
/// </summary>
/// <param name="n"></param>
/// <returns></returns>
static int GetFactorial(int n)
{
    if (n == 1)
    {
        return 1;
    }
    else
    {
        return n * GetFactorial(n - 1);//调用函数自身实现阶乘运算
    }
}
时间: 2024-11-05 17:34:32

程序基础(二)的相关文章

准零基础搞懂FFT快速傅里叶变换及其实现程序(二)

上一篇文章我们了解了DFT的原理,FFT是基于DFT的更适合计算机运算的算法,本文我们就正式开始学习FFT的原理. 首先我么先来宏观的看一下FFT.如果我们把整个FFT的算法看成一个黑盒子的话,那么它的输入就是时间波形信号,比如声音波形(横轴为时间,纵轴为振幅).外什么FFT要比DFT速度更快呢?下面(图1)解释了FFT和DFT的(对于计算机的)算法复杂度 图1 从上面的数学表达式可以看出,一个1024采样点的FFT比DFT块了102.4倍.如果傅里叶变换的数量级更大,FFT的速度优势会更明显.

程序猿二三事之Java基础--Java SE 5增加的特性--语法篇(一)

程序猿二三事之Java基础–Java SE 5增加的特性–语法篇(一) [ TOC ] 为什么是Java SE 5? 目前已经到了JDK-8u74了,JDK7的主版本已经于2015年4月停止公开更新. 那为什么还要来说Java/JDK5呢? Java SE在1.4(2002)趋于成熟,随着越来越多应用于开发企业应用,许多框架诞生于这个时期或走向成熟. Java SE 5.0的发布(2004)在语法层面增加了很多特性,让开发更高效,代码更整洁. 自动装箱/拆箱.泛型.注解.for循环增强.枚举.可

.NET开发微信小程序-生成二维码

1.生成小程序二维码功能 直接请求相应的链接.传递相应的参数 以生成商铺的付款码为例: var shopsId = e.ShopsId //付款码的参数 var codeModel = new function () { } codeModel.path = "pages/PageWxPay/PageWxPay?shopsId=" + shopsId codeModel.width = 430 codeModel.auto_color = false codeModel.line_co

Python基础二--基本控制语句

基本接触每一种语言,都需要做的:1.print 一个"Hello world!" 2.了解基本的数据类型 3.学习控制语句. 当我们学习控制语句,一般都离不开if,for ,while,switch(case).本文就做一个简单的介绍python的基本控制语句,其中我们用if while来做一个经典的"猜数字游戏",if for来做一个"输出完美数". 在此之前,对于一些没用过python的同学而熟悉c/c++等用{}来做块的要注意了,pytho

JAVA并行程序基础

JAVA并行程序基础 一.有关线程你必须知道的事 进程与线程 在等待面向线程设计的计算机结构中,进程是线程的容器.我们都知道,程序是对于指令.数据及其组织形式的描述,而进程是程序的实体. 线程是轻量级的进程,是程序执行的最小单位.(PS:使用多线程去进行并发程序的设计,是因为线程间的调度和切换成本远小于进程) 线程的状态(Thread的State类): NEW–刚刚创建的线程,需要调用start()方法来执行线程: RUNNABLE–线程处于执行状态: BLOCKED–线程遇到synchroni

Object Pascal 语法之语言基础(二)

1.5 数据类型与定义变量 Object Pascal 语言的最大特点是对数据类型的要求非常严谨.传递给过程或函数的参数值必须与形参的类型一致.在Object Pascal 语言中不会看到像C 语言编译器提示的“可疑的指针转换”等警告信息.由于Object Pascal 语言对数据类型比较严谨,因此它会对代码进行严格检查,以确保不会出现错误.变量是程序代码中代表一个内存地址的标识符,那么该地址的内存内容就可以在程序代码执行时被改变.每个变量都有一个名字和数据类型,名字可以用来引用变量,数据类型决

将 Shiro 作为应用的权限基础 二:基于SpringMVC实现的认证过程

认证就是验证用户身份的过程.在认证过程中,用户需要提交实体信息(Principals)和凭据信息(Credentials)以检验用户是否合法.最常见的“实体/凭证”组合便是“用户名/密码”组合. 一.认证过程 1.收集实体/凭据信息 Java代码 UsernamePasswordToken token = new UsernamePasswordToken(username, password); token.setRememberMe(true); UsernamePasswordToken支

蓝鸥Unity开发基础二——课时3 访问修饰符

[蓝鸥Unity开发基础二]课时3 访问修饰符 一.访问修饰符 public --公共的,在哪里都能用 private  --私有的,只能够在当前机构体重使用,其他任何地方都不能 访问修饰符举例说明 using System; namespace Lesson_03{           struct Point2{        //public--公共的,在哪里都能用        public float x;        //private  --私有的,只能够在当前机构体重使用,其他

Android-应用程序基础及原理概要

Android-应用程序基础及原理概要 一 Android程序的基本特性 1 apk是Android应用程序的安装格式,dex是Android二进制执行文件格式 2 Android是基于liunx的多用户操作系统,每个应用程序都是使用不同的用户 3 默认情况下,一个程序一个userid,系统设定的,不需要手动去设定,这样的程序,用户有权限进行所有的操作 4 每一个进程都有自己的吸泥机实例,所以内个程序相对独立 5 默认情况下,应用程序都有自己的linux进程,系统会决定何时关闭它,当资源不够的时