C#語(yǔ)言基礎(chǔ)(數(shù)組)

c#語(yǔ)言中的快捷鍵

image

注意:

1、二進(jìn)制無(wú)法精確表示1/10,就像十進(jìn)制無(wú)法精確表示1/3术羔。對(duì)于精度較高的場(chǎng)合會(huì)導(dǎo)致代碼的缺陷,可以使用decimal代替乙漓。

調(diào)試:查看各個(gè)變量的取值级历,找到程序的錯(cuò)誤

1、在可能出錯(cuò)的行處加斷點(diǎn)

2叭披、按F5 啟動(dòng)調(diào)試

3寥殖、按F11 逐語(yǔ)句執(zhí)行

4、shift+F5 停止調(diào)試

標(biāo)準(zhǔn)化輸出格式


            Console.WriteLine("金額為:{0:c}",10);

            Console.WriteLine("{0:d2}",5);//05

            Console.WriteLine("{0:f1}",1.26);//1.3  根據(jù)精度四舍五入

            Console.WriteLine("{0:p}", 0.1);// 10.00%

            Console.WriteLine("{0:p1}", 0.1);// 10.0%

            Console.WriteLine("{0:p0}", 0.1);// 10%

        //空字符

        char c1='\0';

        //隱式轉(zhuǎn)換:小范圍到大范圍的自動(dòng)轉(zhuǎn)換 比如 byte---->int

            byte b1 = 10;

            int i1 = b1;

         //顯示轉(zhuǎn)換:大范圍到小范圍的需要強(qiáng)制類型轉(zhuǎn)換涩蜘。 比如int---->byte

            int i2 = 10;

            byte b2 = (byte)i2;

            byte b=1嚼贡;

            b+=3;

            b=(byte)(b+3);//相加就認(rèn)為是int類型了

遞歸


        //遞歸 必須要有出口

        //優(yōu)勢(shì):將復(fù)雜問(wèn)題簡(jiǎn)單化

        //階層的計(jì)算

        private static int getFactorial(int num) {

            if (num == 1) return 1;

            return num * getFactorial(num - 1);

        }

        //計(jì)算參數(shù)為8的結(jié)果

        //1-2+3-4+5-6.....

        private static int funNum(int num) {

            if (num == 1) return 1;

            if (num % 2 == 0)

                return funNum(num - 1)-num;//類似于:7-8

            else

                return funNum(num - 1)+num;//類似于:2+3

        }

數(shù)組

        數(shù)組的定義:

                  數(shù)據(jù)類型[]      數(shù)組名;--------> int[]  a;

        初始化數(shù)組:

                    數(shù)組名  =  new 數(shù)據(jù)類型[元素總數(shù)]; --------------> a=new int[3];

        //返回結(jié)果為一個(gè)數(shù)組

        private static float[] scoreArray() {

            //數(shù)組

            Console.WriteLine("請(qǐng)輸入學(xué)生總?cè)藬?shù):");

            int count = int.Parse(Console.ReadLine());

            //申明一個(gè)數(shù)組同诫,并且為數(shù)組分配空間

            float[] score = new float[count];

            for (int i = 0; i < score.Length;)

            {

                Console.WriteLine("請(qǐng)輸入第{0}個(gè)學(xué)生成績(jī):", i + 1);

                float sc = float.Parse(Console.ReadLine());

                if (sc >= 0 && sc <= 100)

                    score[i++] = sc; //成績(jī)?nèi)M(jìn)來(lái)粤策,才加1

                else

                    Console.WriteLine("成績(jī)有誤");

            }

            return score;

        }

        //利用剛寫的方法,該方法返回的是一個(gè)數(shù)組類型

            float[] array = scoreArray();

            findMax(array);

        //定義查找數(shù)組元素最大值的方法float[]

        private static float findMax(float[] array) {

            float max = array[0];

            for (int i=0;i<array.Length-1;i++) {

                if (array[i+1]>max)

                    max = array[i+1];

            }

            Console.WriteLine(max);

            return max;

        }

        //數(shù)組的其他寫法  初始化+賦值

            string[] arr = new string[2] { "a", "b" };

        //判斷年是否為閏年

        private static bool isLeapYear(int year) {

            return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;

        }

        //算某年某月某日是當(dāng)年的第幾天

        //比如2017-3-5是2017年的第幾天

        private static void getAllDays(int year,int month,int day) {

            //將一年中每月的天數(shù)都存到數(shù)組中去

            int[] daysOfMonth = new int[] { 31,28,31,30,31,30,31,31,30,31,30,31};

            //判斷是否為閏年 如果是閏年误窖,那么2月的天數(shù)為29天

            if (isLeapYear(year)) daysOfMonth[1] = 29;

            int num = 0;

            //month-1:表示過(guò)完了month-1月才能將天數(shù)加上

            //因?yàn)楫?dāng)month=1時(shí)叮盘,則為一年的開(kāi)始月

            for (int i=0;i<month-1;i++) {

                num += daysOfMonth[i];

            }

            num += day;

            Console.WriteLine(year+"年"+month+"月"+day+"日是第{0}天",num);

        }

foreach


        /* foreach(元素類型 變量名 in 數(shù)組名稱)

          {

                變量名 即數(shù)組每個(gè)元素

          }*/

            int[] array0 = new int[] { 1, 2, 3, 4, 5 };

            foreach (var item in array0) {

                 Console.WriteLine(item);// 1,2,3,4,5 將數(shù)組的元素遍歷了一次

            }

var


            //推斷類型:根據(jù)所賦數(shù)據(jù),推斷類型

            //適用性:數(shù)據(jù)類型名稱較長(zhǎng)

            var v1 = 1; //int

            var v2 = "1";//string

            var v3 = '1';//char

            var v4 = true;//bool

            var v5 = 1.0;//double(沒(méi)后綴默認(rèn)為double)

數(shù)組特點(diǎn)


        //父類引用指向子類對(duì)象 向上轉(zhuǎn)型

            Array arr1 = new int[2];

            Array arr2= new double[2];

            Array arr3= new string[2];

image

            int[] array0 = new int[] { 1, 2, 3, 4, 5 };

            int[] brr =(int[]) array0.Clone();//將array0這個(gè)數(shù)組克隆給數(shù)組brr

            //判斷數(shù)組中是否有指定元素

            bool result= Array.IndexOf(array0, 2)>=0;//存在指定元素則返回1霹俺,否則返回 -1

            Array.IndexOf(array0, 2);//表示獲取指定元素2在數(shù)組array0中的下標(biāo)

            Array.IndexOf(array0, 2)>=0;//表示判斷指定元素2是否存在于數(shù)組array0中

判斷一個(gè)元素是否在一個(gè)數(shù)組中存在時(shí)使用 Array.IndexOf()這個(gè)方法

買彩票小游戲(數(shù)組的練習(xí))


static void Main(string[] args){

          //玩一局彩票游戲 

          int[] myTicket = buyTicket();//自己先買一支彩票

          int[] randomTicket = createRandomTicket();//隨機(jī)生成一期中獎(jiǎng)的號(hào)碼

          //查看自己購(gòu)買的彩票號(hào)碼

          Console.WriteLine("我買的彩票為:");

          foreach (var myNum in myTicket)

              Console.Write(myNum + "\t");

          Console.WriteLine();

          //查看中獎(jiǎng)的彩票號(hào)碼

          Console.WriteLine("中獎(jiǎng)的彩票為:");

          foreach (var ranNum in randomTicket)

              Console.Write(ranNum + "\t");

          Console.WriteLine();

          //比對(duì)中獎(jiǎng)的等級(jí)

          Console.WriteLine("中獎(jiǎng)的等級(jí)為:{0}", ticketEquals(myTicket, randomTicket));

          }

method1:

    /// <summary>

      /// 購(gòu)買彩票

      /// </summary>

      /// <returns>所有球的號(hào)碼的數(shù)組ticket</returns>

      private static int[] buyTicket() {

          int[] ticket = new int[7];

          //6個(gè)紅球

          for (int i = 0; i < 6; )

          {

              Console.WriteLine("請(qǐng)輸入第{0}個(gè)紅球號(hào)碼:",i+1);

              int redNumber = int.Parse(Console.ReadLine());

              //在將輸入的紅色球號(hào)碼存入到數(shù)組之前需要滿足以下條件:

              //1.輸入的紅球號(hào)碼不能重復(fù)

              //2.輸入的紅球號(hào)碼在1-33之間

              if (redNumber <1 || redNumber > 33) Console.WriteLine("購(gòu)買的號(hào)碼超過(guò)范圍");

              else if (Array.IndexOf(ticket, redNumber)>=0) Console.WriteLine("號(hào)碼已經(jīng)存在");

              else ticket[i++] = redNumber;//以上條件都滿足則該號(hào)碼才能存入到數(shù)組ticket中

          }

          //第7個(gè)藍(lán)球

          while (true) {

              Console.WriteLine("請(qǐng)輸入藍(lán)球號(hào)碼:");

              int blueNumber = int.Parse(Console.ReadLine());

              if (blueNumber < 1 || blueNumber > 16) Console.WriteLine("購(gòu)買的號(hào)碼超過(guò)范圍");

              else {

                  ticket[ticket.Length - 1] = blueNumber;//先將紅球裝入數(shù)組中柔吼,最后放藍(lán)球

                  break;//將最后一個(gè)數(shù)據(jù)填入數(shù)組之后,即結(jié)束則跳出整個(gè)while循環(huán)

              }

          }

          Array.Sort(ticket,0,6);//將數(shù)組前6位進(jìn)行排序

          return ticket;

      }

method2:

      //創(chuàng)建一個(gè)隨機(jī)的彩票數(shù)組

      //先寫一個(gè)靜態(tài)的隨機(jī)方法丙唧,方便調(diào)用

      static Random random = new Random();

      private static int[] createRandomTicket() {

          int[] ticket = new int[7];

          //隨機(jī)生成6個(gè)紅球

          for (int i = 0; i < 6;)

          {

            int redNumber=random.Next(1, 34);//隨機(jī)產(chǎn)生1-33之間的一個(gè)數(shù) 并 給紅球

            //存在不相同的色號(hào) 則將該色號(hào)存入數(shù)組內(nèi)

              if (Array.IndexOf(ticket, redNumber) < 0)

                  ticket[i++] = redNumber;

          }

          //隨機(jī)生成一個(gè)藍(lán)球

          ticket[ticket.Length - 1] = random.Next(1, 17);

          //紅球號(hào)碼排序 從ticket的第1個(gè)數(shù)據(jù)開(kāi)始愈魏,將前6個(gè)數(shù)據(jù)進(jìn)行排序

          Array.Sort(ticket, 0, 6);

          return ticket;

      }

method3:

//兩個(gè)數(shù)組相互比較

      private static int ticketEquals(int[] thisTicket,int[] randomTicket) {

          //計(jì)算紅球和藍(lán)球的中獎(jiǎng)數(shù)量

          //藍(lán)球的中獎(jiǎng)數(shù)量

          int blueCount = thisTicket[thisTicket.Length - 1] ==  randomTicket[randomTicket.Length - 1] ? 1 : 0;

          //紅球的中獎(jiǎng)數(shù)量 判斷我的第的號(hào)碼在不在隨機(jī)的中獎(jiǎng)號(hào)碼中

          int redCount = 0;

          for (int i = 0; i < thisTicket.Length-1; i++)

          {

              //將thisTicket數(shù)組中的元素從0開(kāi)始與randomTicket數(shù)組中的元素進(jìn)行6次搜素對(duì)比

              if (Array.IndexOf(randomTicket, thisTicket[i], 0, 6) >= 0)

                  redCount++;

          }

          //查看中獎(jiǎng)情況

          int level;//設(shè)置中獎(jiǎng)等級(jí)

          if (blueCount + redCount == 7)

              level = 1;

          else if (redCount == 6)

              level = 2;

          else if (blueCount + redCount == 6)

              level = 3;

          else if (redCount + blueCount == 5)

              level = 4;

          else if (redCount + blueCount == 4)

              level = 5;

          else if (blueCount == 1)

              level = 6;

          else

              level = 0;

          return level;//返回中獎(jiǎng)等級(jí)

      }

彩票小游戲運(yùn)行結(jié)果

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市想际,隨后出現(xiàn)的幾起案子培漏,更是在濱河造成了極大的恐慌,老刑警劉巖沼琉,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件北苟,死亡現(xiàn)場(chǎng)離奇詭異桩匪,居然都是意外死亡打瘪,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)闺骚,“玉大人彩扔,你說(shuō)我怎么就攤上這事∑” “怎么了虫碉?”我有些...
    開(kāi)封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)胸梆。 經(jīng)常有香客問(wèn)我敦捧,道長(zhǎng),這世上最難降的妖魔是什么碰镜? 我笑而不...
    開(kāi)封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任兢卵,我火速辦了婚禮,結(jié)果婚禮上绪颖,老公的妹妹穿的比我還像新娘秽荤。我一直安慰自己,他們只是感情好柠横,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布窃款。 她就那樣靜靜地躺著,像睡著了一般牍氛。 火紅的嫁衣襯著肌膚如雪晨继。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天糜俗,我揣著相機(jī)與錄音踱稍,去河邊找鬼。 笑死悠抹,一個(gè)胖子當(dāng)著我的面吹牛珠月,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播楔敌,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼啤挎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了卵凑?” 一聲冷哼從身側(cè)響起庆聘,我...
    開(kāi)封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎勺卢,沒(méi)想到半個(gè)月后伙判,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡黑忱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年宴抚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了勒魔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡菇曲,死狀恐怖冠绢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情常潮,我是刑警寧澤弟胀,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站喊式,受9級(jí)特大地震影響孵户,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜岔留,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一延届、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贸诚,春花似錦方庭、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至运悲,卻和暖如春龄减,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背班眯。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工希停, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人署隘。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓宠能,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親磁餐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子违崇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 昨天聽(tīng)了陳老師的講座,對(duì)比自我诊霹,有很多地方值得學(xué)習(xí)羞延。 總是感覺(jué)陪伴孩子沒(méi)有時(shí)間,或者不知道可以做什么脾还,有時(shí)候伴箩,陪著...
    d8dd83711bcd閱讀 77評(píng)論 0 0
  • 一、字符流 字符流:適合讀寫文本字符(按照字符讀取鄙漏,不能直接按照行讀揉脱琛) 1. FileReader 常用API:...
    海賊王日熊閱讀 109評(píng)論 0 0
  • 1203 Sort Items by Groups Respecting Dependencies 項(xiàng)目管理 De...
    air_melt閱讀 136評(píng)論 0 1
  • 昨天下午路過(guò)街頭小游園砂客,這里原本就是老年人樂(lè)園,小游園建設(shè)時(shí)保留了很多原來(lái)的大樹呵恢,夏季酷熱時(shí),這里大喬木遮天蔽日媚创,...
    千山外水常流閱讀 170評(píng)論 0 0
  • linux centos 7.6修改ssh默認(rèn)端口號(hào) 1.端口號(hào)的概念:眾所周知渗钉,現(xiàn)在計(jì)算機(jī)主流的通信協(xié)議是TCP...
    小豬逗比閱讀 146評(píng)論 0 0