ภาษาซี (C/C++) กับ โจทย์ทั่วไป (1) รับค่าตัวเลขใดก็ได้ และเมื่อรับค่าเลข 0 ให้จบการทำงานของโปรแกรม...

หมวดสำหรับแบ่งบันความ รู้ต่างๆ จะมีหมวดย่อยๆ ในหมวดนี้ เช่น php, SQL, XML, CSS

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Aussadawut
PHP Hero Member
PHP Hero Member
โพสต์: 123
ลงทะเบียนเมื่อ: 15/11/2018 10:05 am

ภาษาซี (C/C++) กับ โจทย์ทั่วไป (1) รับค่าตัวเลขใดก็ได้ และเมื่อรับค่าเลข 0 ให้จบการทำงานของโปรแกรม...

โพสต์ที่ยังไม่ได้อ่าน โดย Aussadawut »

โปรแกรมภาษาซี และตัวอย่างโจทย์

โปรแกรมในภาษาซีทุกโปรแกรมจะประกอบด้วยฟังก์ชันอย่างน้อย หนึ่งฟังก์ชัน คือ ฟังก์ชัน main โดยโปรแกรมภาษาซีจะเริ่มทำงานที่ฟังก์ชัน main ก่อน ในแต่ละฟังก์ชันจะประกอบด้วย
1.ชื่อฟังก์ชัน และอาจมีรายการของ argument (บางคนเรียก parameter) อยู่ในวงเล็บ
2.ตัวแปร
3.ประโยคคำสั่งต่างๆ

ก่อนที่เราจะเริ่มเขียนโค๊ดภาษาซี เราควรศึกษาว่า ภาษาซีคืออะไร ใช้ทำอะไร และมีข้อดี ข้อเสียอย่างไร สามารถนำไปต่อยอดอะไรได้บ้าง คลิกที่ลิงค์ข้างล่างนี้ได้เลย
ทำความรู้จักกับภาษาซี C/C++
หลังจากที่เราทำความรู้จักกับภาษาซีแล้ว เรามาเริ่มเขียนภาษาซีกันเลย

โจทย์ : รับค่าตัวเลขใดก็ได้ และเมื่อรับค่าเลข 0 ให้จบการทำงานของโปรแกรม และแสดงว่ารับมากี่จำนวน พร้อมทั้งแสดงเลขที่รับมาทั้งหมด โดยไม่รวมเลข 0
1.PNG

โค้ด: เลือกทั้งหมด

#include<stdio.h>
main(){
	int i=0,count=0,k,num[100];
	while(1){
		printf("Enter number :"); 
		scanf("%d",&num[i]);
			if(num[i]==0){
				break;
			}
			i++; count++;
	}
	printf("num of stack = %d\n",count);
	
	printf("number of stack (no 0) :");
	for(k=0;k<=count;k++){
		if(num[k]>0){
			printf(" %d",num[k]);
		}
	}
	printf("\n");
}
บรรทัดที่ 3 กำหนดตัวแปรที่ต้องใช้ในโปรแกรมนี้ i เพื่อรันตำแหน่ง Array , count เพื่อนับจำนวน Array , k เพื่อรัน For loop , num เพื่อเก็บค่าตัวเลข
บรรทัดที่ 4 ใช้ infinity loop เพื่อวน loop รับค่าไปเรื่อยๆ
บรรทัดที่ 5 แสดงข้อความรับค่าตัวเลข
บรรทัดที่ 6 รับค่าตัวเลขเก็บใน num ตำแหน่งที่ i
บรรทัดที่ 7 ถ้า num ตำแหน่งที่ i มีค่าเท่ากับ 0
บรรทัดที่ 8 สั่งให้หยุดการทำงานของ loop
บรรทัดที่ 10 บวกค่าของตำแหน่งรอบละ 1 , บวกค่าของตัวนับครั้งละ 1
บรรทัดที่ 12 แสดงตัวเลขที่รับมาทั้งหมด ยกเว้น 0 (จริงๆแล้วยังมีค่าเลข 0 อยู่ใน Array แต่เนื่องจากรอบสุดท้าย รับค่าเลข 0 loop ได้หยุดก่อนที่ จะนับจำนวนสุดท้าย โปรแกรมเลยแสดงแค่ค่าก่อนหน้า นั่นคือ 6)
บรรทัดที่ 14 แสดงข้อความลำดับตัวเลขใน Array
บรรทัดที่ 15 ใช้ for loop เพื่อวน loop ตำแหน่งของ Array ทีละตำแหน่ง
บรรทัดที่ 16 ถ้า num ตำแหน่งที่ k มากกว่า 0
บรรทัดที่ 17 แสดงตัวเลขใน Array จากเงื่อนไขด้านบน

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 25