สำหรับหลายๆคนที่เรียนมาแล้วหรือกำลังเรียนสายคอมพิวเตอร์ โปรแกรม จะต้องเจอกับโจทย์ Loop ชวนปวดหัวของอาจารย์อยู่เรื่อยๆ
นั่นก็เพราะว่า เราจะได้ฝึกให้มีความชำนาญในเรื่อง Loop และเข้าใจการทำงานของมันได้ง่ายขึ้นนั่นเอง
Loop คือ การทำงานวนซ้ำๆไปเรื่อยๆ จนกว่าจะถึงจุดที่เรากำหนดไว้
และโพสต์นี้เป็นโพสต์ที่ 7 แล้ว สำหรับ Loop ภาษาซีในตำนาน
โจทย์ : รับค่าตัวเลขไปเรื่อยๆจนกว่าจะเจอเลข 0 แล้วจึงหยุดรับค่า พร้อมทั้งนับว่าหารด้วย 5 ลงตัว มีกี่จำนวน
โค้ด: เลือกทั้งหมด
#include<stdio.h>
main(){
int a=1;
int num[100],i=0,count=0,j=0;
while(a=1){ // ให้วน loop ไปเรื่อย ถ้า a=1 อันนี้เป็น infinity loop
printf("Enter number : "); // แสดงข้อความรับค่า
scanf("%d",&num[i]); // รับค่าตัวเลขเก็บใน Array
if(num[i]==0){ // ถ้า Array ในตำแหน่งล่าสุด มีค่าเท่ากับ 0
break; // สั่งให้หยุดการทำงานของ loop นี้
}
i++; count++; // บวกค่าของ i และ count เพิ่มครั้งละ 1 ของแต่ละรอบ ค่า i คือ ตำแหน่ง Array ค่า count จำนวน Array
}
// ส่วนของการแสดงผลใน Array
int result=0,div5=0; // result ใช้เก็บค่าหลัง modulo และ div ไว้นับจำนวนเลขที่หารด้วย 5 ลงตัว
for(j=0;j<=count;j++){ // วน loop for ตั้งแต่ j มีค่าเท่ากับ 0 จนถึง j มีค่าเท่ากับ count
result = num[j]%5; // นำค่าใน Array modulo ด้วย 5
if(result==0){ // ถ้า result เท่ากับ 0
div5 += 1; // ให้จำนวนที่หารด้วย 5 ลงตัวบวก 1
}
}
printf("Count Div 5 : %d\n",div5-1); // แสดงผลจำนวนที่หารด้วย 5 ลงตัวทั้งหมด แต่เนื่องจาก 0 modulo ด้วย 5 เท่ากับ 0 จึงสั่งให้ลบจำนวนนับออก 1 ตัว
}
และหวังว่าโพสต์นี้ จะเป็นแนวทางให้กับน้องๆที่อยากเป็นโปรแกรมเมอร์ในอนาคตนะครับ
------------------------------------------------------------------------------------------------------------