C#,《小白學程序》第二課:數組,循環與排序

1 什么是數組?

數組 Array 是一組數值(數 或 值)。

? int[] a;

? int[,] b;

? int[][] c;

? Anything[] d;

? 都是數組。

2 排序

排序就是按大小、名字、拼音或你指定的信息進行比較后排隊。

排序是數組最基本的功能需求。

3 文本格式


/// <summary>
/// 《小白學程序》第二課:數組與排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
? ? // #1 數組:一組數據(成員 或 單元)
? ? double[] score = {
? ? ? ? 540, 340, 650, 120, 554,
? ? ? ? 643, 612, 234, 345, 456
? ? };
? ? // 數組成員的個數
? ? int n = 10;

? ? // #2 打印數組(順序輸出數組)
? ? // 先組成長長的串,最后再輸出;
? ? // StringBuilder 是最常用的進行字符串 數據 組合成常常的字符串的方式;
? ? StringBuilder sb = new StringBuilder();
? ? // AppendLine 加一行;<br> 是換行;
? ? sb.AppendLine("未排序之前的成績:<br>");

? ? // #3 循環?
? ? // for 開始的句子(語句)成為循環,就是順序處理;
? ? // for 語句詳解:定義一個標志 i, 從 0 到 n-1 = (n之前);每次加 1 ;
? ? // 可見數組的標志(下標)是從 0 開始的!!!!!!!
? ? #region 標準寫法
? ? for (int i = 0; i < n; i++)
? ? {
? ? ? ? sb.AppendLine((i + 1) + ": " + score[i] + "<br>");
? ? }
? ? sb.AppendLine("<br>");
? ? #endregion

? ? // #4 排序
? ? // 兩層循環;a 從第一個開始,每次與后面每一個 b 的成績比較;
? ? // 如果 a 成績超過 b 成績的交換;
? ? for (int i = 0; i < n - 1; i++)
? ? {
? ? ? ? for (int j = i + 1; j < n; j++)
? ? ? ? {
? ? ? ? ? ? if (score[i] > score[j])
? ? ? ? ? ? {
? ? ? ? ? ? ? ? // 交換;
? ? ? ? ? ? ? ? // 中間需要一塊墊板(stemp)用于臨時存放 a成績
? ? ? ? ? ? ? ? double stemp = score[i];
? ? ? ? ? ? ? ? score[i] = score[j];
? ? ? ? ? ? ? ? score[j] = stemp;
? ? ? ? ? ? }
? ? ? ? }
? ? }

? ? // #5 輸出排序后的結果
? ? sb.AppendLine("從小到大排序之后的成績:<br>");
? ? for (int i = 1; i < n + 1; i++)
? ? {
? ? ? ? sb.AppendLine(i + ": " + score[i - 1] + "<br>");
? ? }
? ? sb.AppendLine("<br>");

? ? // #6 輸出到一個出口嵌入的網頁瀏覽器
? ? webBrowser1.DocumentText = sb.ToString();
}
?

3 代碼格式


/// <summary>
/// 《小白學程序》第二課:數組與排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{// #1 數組:一組數據(成員 或 單元)double[] score = {540, 340, 650, 120, 554,643, 612, 234, 345, 456};// 數組成員的個數int n = 10;// #2 打印數組(順序輸出數組)// 先組成長長的串,最后再輸出;// StringBuilder 是最常用的進行字符串 數據 組合成常常的字符串的方式;StringBuilder sb = new StringBuilder();// AppendLine 加一行;<br> 是換行;sb.AppendLine("未排序之前的成績:<br>");// #3 循環 // for 開始的句子(語句)成為循環,就是順序處理;// for 語句詳解:定義一個標志 i, 從 0 到 n-1 = (n之前);每次加 1 ;// 可見數組的標志(下標)是從 0 開始的!!!!!!!#region 標準寫法for (int i = 0; i < n; i++){sb.AppendLine((i + 1) + ": " + score[i] + "<br>");}sb.AppendLine("<br>");#endregion#region 另一種寫法
#if __UNUSED__// for 語句詳解:定義一個標志 i, 從 1 到 n = (n+1)之前;每次加 1 ;for (int i = 1; i < n + 1; i++){sb.AppendLine(i + ": " + score[i - 1] + "<br>");}sb.AppendLine("<br>");
#endif#endregion// #4 排序// 兩層循環;a 從第一個開始,每次與后面每一個 b 的成績比較;// 如果 a 成績超過 b 成績的交換;for (int i = 0; i < n - 1; i++){for (int j = i + 1; j < n; j++){if (score[i] > score[j]){// 交換;// 中間需要一塊墊板(stemp)用于臨時存放 a成績double stemp = score[i];score[i] = score[j];score[j] = stemp;}}}// #5 輸出排序后的結果sb.AppendLine("從小到大排序之后的成績:<br>");for (int i = 1; i < n + 1; i++){sb.AppendLine(i + ": " + score[i - 1] + "<br>");}sb.AppendLine("<br>");// #6 輸出到一個出口嵌入的網頁瀏覽器webBrowser1.DocumentText = sb.ToString();
}

4 計算結果

你非常幸運讀到的是一本真正的程序教程。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167611.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167611.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167611.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《數據結構、算法與應用C++語言描述》-代碼實現散列表(線性探查與鏈式散列)

散列表 完整可編譯運行代碼&#xff1a;Github:Data-Structures-Algorithms-and-Applications/_22hash/ 定義 字典的另一種表示方法是散列&#xff08;hashing&#xff09;。它用一個散列函數&#xff08;也稱哈希函數&#xff09;把字典的數對映射到一個散列表&#xff08…

spring-webflux的一些概念的理解

Spring5的webflux可以支持高吞吐量&#xff0c;使用相同的資源可以處理更加多的請求&#xff0c;它將會成為未來技術的趨勢&#xff0c;但是相對于學習其他的框架相比&#xff0c;它的學習曲線很高&#xff0c;綜合了很多現有的技術&#xff0c;即使按照教程學習能編寫代碼&…

requests庫的學習(詳細篇)

一、request庫的安裝 requests屬于第三方庫&#xff0c;Python不內置&#xff0c;因此需要我們手動安裝。 pip3 install requests

HTML5新特性

HTML5新特性 前言語義化標簽常用語義化標簽優點 新增input屬性新增type屬性值內容其他新增input屬性 video&#xff08;視頻&#xff09;與audio&#xff08;音頻&#xff09;標簽 前言 本文主要講解HTML5中新增了哪些內容。 語義化標簽 HTML5新增了語義化標簽這個特性&…

第一類曲線積分@對弧長的曲線積分

文章目錄 abstract對弧長的曲線積分曲線形構件的質量第一類曲線積分曲線積分存在性利用曲線積分的定義描述曲線形構件質量問題推廣曲線積分可加性閉曲線積分 曲線積分性質曲線積分的計算方法證明(部分推導) 小結曲線弧顯函數形式方程下的曲線積分公式推廣例例例 abstract 在積…

html table樣式的設計 表格邊框修飾

<!DOCTYPE html> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <title>今日小說排行榜</title> <style> table {border-collapse: collapse;border: 4px double red; /*…

Python之Pygame游戲編程詳解

一、介紹 1.1 定義 Pygame是一種流行的Python游戲開發庫&#xff0c;它提供了許多功能&#xff0c;使開發人員可以輕松創建2D游戲。它具有良好的跨平臺支持&#xff0c;可以在多個操作系統上運行&#xff0c;例如Windows&#xff0c;MacOS和Linux。在本文中&#xff0c;我們將…

單鏈表的反轉?太細了哥們!細到離譜!

單鏈表的反轉&#xff08;面試常出&#xff09;&#xff1a; ? 單鏈表的反轉&#xff0c;可以通過很多種方法實現。包括迭代法&#xff0c;遞歸法&#xff0c; 迭代法&#xff1a; 定義三個指針&#xff1a;prev、current和next&#xff0c;它們分別表示前一個節點、當前節點…

NSGA-III求解微電網多目標優化調度(MATLAB)

一、NSGA-III簡介 NSGA-III算法由Kalyanmoy Deb和Himanshu Jain于 2014年提出。 參考文獻&#xff1a;Deb K , Jain H . An Evolutionary Many-Objective Optimization Algorithm Using Reference Point-Based Nondominated Sorting Approach, Part I: Solving Problems With …

[chroot+seccomp逃逸] THUCTF2019 之 固若金湯

題目分析 附件為一個源碼, 其中注釋我都寫好了, 主要就講關鍵的知識點. #define _GNU_SOURCE#include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <sched.h> #include <uni…

【C/PTA —— 10.函數1(課外實踐)】

C/PTA —— 10.函數1&#xff08;課外實踐&#xff09; 一.函數題6-1 符號函數6-2 求排列數6-3 求一個大于10的n位整數w的后n-1位的數&#xff0c;并作為函數值返回。6-4 其右上三角&#xff08;含主對角線&#xff09;元素之和。6-5 字符串比較6-6 使用函數求素數和6-7 使用函…

【電子通識】為什么說做產品不是簡單的將不同的技術進行搭積木?

很多人說做產品的硬件工程師&#xff0c;其實就是將專項技術工程師已經調好的模塊進行拼接。類似于小孩將積木搭成一個房子的形狀&#xff0c;雖然不同人搭的房子風格迥異&#xff0c;但所使用的原材料卻都是一樣的。 首先我并不同意這種看法&#xff0c;原因是產品工程師是需要…

JVM深入理解

JVM深入理解&#xff08;一&#xff09; JVM是什么 JRE、JDK和JVM 的關系 JVM原理 1、JVM是什么&#xff1f; JVM是Java Virtual Machine&#xff08;Java虛擬機&#xff09;的縮寫&#xff0c;由一套字節碼指令集、一組寄存器、一個棧、一個垃圾回收堆和一個存儲方法域等組…

MediaCodec詳解

MediaCodec 是Android平臺提供的一個API&#xff0c;用于對音頻和視頻數據進行編碼&#xff08;轉換為不同的格式&#xff09;和解碼&#xff08;從一種格式轉換回原始數據&#xff09;。它是Android 4.1&#xff08;API級別16&#xff09;及以上版本的一部分&#xff0c;允許開…

Sulfo-CY5 Azide在其他生物學研究中的應用

除了生物成像、生物分子標記、分子生物學研究和生物傳感與診斷等領域外&#xff0c;Sulfo-CY5 Azide還在其他生物學研究中有多種應用&#xff0c;**(來自星戈瑞的花菁染料)**如下&#xff1a; ****細胞追蹤和細胞遷移研究&#xff1a;****Sulfo-CY5 Azide可以被用作細胞標記劑&…

【教3妹學編程-算法題】統計和小于目標的下標對數目

2哥 : 3妹&#xff0c;OpenAI的宮斗劇迎來了大結局&#xff01;OpenAI宣布阿爾特曼復職CEO&#xff0c;董事會重組 3妹&#xff1a;啊&#xff1f;到底誰才是幕后操縱者啊&#xff0c;有咩有揪出來 2哥 : 也不是很清楚&#xff0c;據說在被開除的幾周前&#xff0c;前CEO曾譴責…

Linux 家目錄和根目錄

摘要&#xff1a; 在 Linux 操作系統中&#xff0c;家目錄和根目錄是兩個非常重要的概念。它們是 Linux 文件系統中的兩個關鍵節點&#xff0c;為用戶和系統進程提供存儲、管理和訪問文件和目錄的接口。本文旨在深入探討和理解這兩個目錄的結構、功能和使用方式&#xff0c;同時…

行情分析 - - 加密貨幣市場大盤走勢(11.24)

大餅昨日震蕩幅度很小&#xff0c;而今天延續昨日的空頭思路。當然如果從MACD日線來看&#xff0c;處于上漲趨勢&#xff0c;穩健的可以選擇觀望等待。空頭思路是因為目前EMA21均線和EMA55均線依然保持很遠&#xff0c;最近兩個月BTC上漲40%&#xff0c;而最近持續保持高位很快…

同時可視化原始中心點和經過坐標轉換后的中心點

std::vector<Eigen::Vector2d> centroids_unknown_motion_underk;std::vector<Eigen::Vector2d> measurements_centroids_unknown_motion_k= transformLandmarks(centroids_unknown_motion_k, weights_pose); // 數據填充 // k時刻經過轉換到k-1時刻坐標系下的中心…

Twincat使用:EtherCAT通信掃描硬件設備鏈接PLC變量

EtherCAT通信采用主從架構&#xff0c;其中一個主站設備負責整個EtherCAT網絡的管理和控制&#xff0c;而從站設備則負責在數據環網上傳遞數據。 主站設備可以是計算機、工控機、PLC等&#xff0c; 而從站設備可以是傳感器、執行器、驅動器等。 EL3102:MDP5001_300_CF8D1684;…