DAVID เจลัน: สมมติว่าเราต้องการที่จะเขียน โปรแกรมที่ขอให้ทุกคนใน ห้องพักสำหรับอายุของพวกเขาและจากนั้นพิมพ์ ออกวิธีการเดิมที่คนเหล่านั้นจะได้รับการ ปีนี้? ตอนนี้เห็นได้ชัดว่าการคำนวณนี้ ปัญหาเป็นไปได้อย่างเป็นธรรม ซื่อตรง แต่คำถามที่น่าสนใจคือถ้าเรา ไม่ทราบล่วงหน้าว่าผู้คนจำนวนมาก เป็นไปได้ในห้องนี้ว่า เราสามารถไปเกี่ยวกับการจัดเก็บ ทุกวัยของพวกเขา ดีลองมาดู ขอเริ่มต้นด้วยการกระตุ้น ผู้ใช้ที่ผมเคยทำที่นี่สำหรับ ผู้คนจำนวนมากในห้องพักโดยใช้ GetInt และห่วงในขณะที่ทำเพื่อ ได้รับจำนวนเต็ม สมมติว่าตอนนี้เราต้องการที่จะขอให้แต่ละเช่น คนที่อยู่ในห้องพักสำหรับอายุของพวกเขา ดีสัญชาตญาณของฉันจะใช้ ห่วงทำที่แจ้ง แต่ฉันยัง ต้องการที่จะเก็บ อายุของคนเหล่านั้น และสัญชาตญาณแรกของฉันจะมี การใช้ตัวแปรเป็นครั้งแรก อายุของบุคคลตัวแปรอื่น สำหรับอายุของคนที่สองของ การจัดเรียงของตามสาย อายุ int - ดีขอเรียกว่า 1 สำหรับ เป็นคนแรก int อายุ 2 คนที่สอง int อายุ 3 สำหรับบุคคลที่สาม แต่รอสักครู่นี้ไม่อาจจะ เส้นทางที่ดีที่สุดที่จะไปลง เพราะผมไม่ทราบว่าในอนาคตของ การเขียนและรวบรวมโปรแกรมนี้ว่า ผู้ใช้หลายคนที่มีกำลังจะเป็น และนอกจากนี้ถ้ามีมากที่สุดเท่าที่ ผู้ใช้ 100, 100 ประกาศตัวแปร การเรียงลำดับของการตั้งชื่ออย่างผิดปกติเช่นนี้ไม่ได้ รู้สึกเหมือนการออกแบบที่ดีที่สุด ดีขอบคุณที่มีอยู่อีก ชนิดของตัวแปรที่เรียกว่าแถวที่ ช่วยให้เราสามารถเก็บหมายเลขของ ints ใด ๆ ภายในของมันแม้ว่าเราไม่ทราบ เมื่อเขียนโปรแกรมของฉันกี่ ints เช่นที่เรากำลังจะต้อง จึงขอย้อนกลับและลบเหล่านี้ หลาย ints และแทนที่จะแทนที่ กับหนึ่งในตัวแปรที่เรียกว่า พูดวัยพหูพจน์ แต่ขอเพิ่มเติมระบุในบรรทัดนี้ ของรหัสในวงเล็บว่าเรา ต้องการ n ints และดังนั้นเราจะเรียกรวม อ้างถึง ints เหล่านี้เป็นวัย ตอนนี้ในเวลาเพียงสักครู่ฉันจะสามารถที่จะได้รับ ในแต่ละ ints ในอาร์เรย์นี้ ในทำนองเดียวกันโดยวิธีการวงเล็บเหลี่ยม สัญกรณ์เริ่มต้นที่ 0 เพื่อขอดำเนินการขณะนี้อยู่ในวงที่จะ แจ้งให้ผู้ใช้สำหรับทุกวัยของพวกเขา สำหรับ int ฉันได้รับ 0 ฉันมีค่าน้อยกว่า N, ผู้คนจำนวนมาก ในห้องฉันบวกบวก และขณะนี้อยู่ในวงนี้ขอบอกว่า อายุ printf จำนวนคนร้อยละฉัน เป็นตัวยึดจุลภาค และตอนนี้มากกว่าที่จะเริ่มนับจาก 0 ในโปรแกรมตัวเองให้เป็นที่ ฉันเพิ่มขึ้นอย่างน้อย 1 เพื่อให้ปกติ คนที่ใช้โปรแกรมนี้ ไม่ได้มีการนับเช่น นักวิทยาศาสตร์คอมพิวเตอร์อาจ ตอนนี้ขอทำวัยวงเล็บผมจึง ระบุว่าอายุลำดับที่ i ในของเรา อาร์เรย์ของว​​ัยเป็นไปได้ ค่าตอบแทนของ GetInt ตอนนี้ห่วงด้านล่างนี้ให้ดำเนินการต่อไป จะคิดว่าบางเวลาผ่านไป และตอนนี้ขอดำเนินการต่อไปในวงอื่น ที่จริงอายุทุกคนในห้อง โดยหนึ่งในปี ดังนั้นอีกครั้งที่ฉันได้รับ int 0 ผมน้อย กว่า N, จำนวนของผู้คนใน ห้องพักผมบวกบวก และตอนนี้ด้านในของวงนี้ขอบอกว่า printf ปีจากนี้จำนวนคน ร้อยละฉันเป็นตัวยึดจะ เป็นร้อยละฉันก็เป็นอีกหนึ่ง ตัวยึดปี แล้วเสียบเข้าที่ ตัวยึดให้เป็นครั้งแรกบอกว่าฉันบวก 1 เพื่อให้อีกครั้งที่เราจะเริ่มนับ สำหรับผู้ใช้ตั้งแต่วันที่ 1 และจากนั้นให้เสียบอายุของบุคคลที่ ขณะที่ผมอายุวงเล็บบวก 1 จึง ระบุการเดินทางได้รับอายุลำดับที่ i ในของเรา อาร์เรย์ของว​​ัยเพิ่ม 1 ไปแล้ว แทรกผลรวมที่เป็นตัวยึดของเรา วงเล็บปิดอัฒภาค ตอนนี้ขอรวบรวมโปรแกรมนี้กับการทำ วัยและให้ทำงานได้ด้วยจุด เฉือนวัย และคิดว่ามีเพียงสาม คนที่อยู่ในห้องและมีคนอยู่ 18 มีคน 19 คน 20 ดีในปีที่แต่ละคนเหล่านั้น เป็นไปได้ที่ 19, 20, และ 21, ตามลำดับ