ภาษา C เป็นภาษาคอมพิวเตอร์ที่มีความใกล้เคียงกับภาษามนุษย์จึงถูกจัดให้อยู่ในภาษาระดับสูง ซึ่งมีความง่ายต่อการเข้าใจ และการเรียนรู้ แต่อาจจะมีความซับซ้อนมากกว่าภาษาที่กำลังนิยม เช่น C# ข้อดีของภาษา C คือ สามารถเจาะลึกให้เข้ากับฮาร์ดแวร์ ทำงานได้รวดเร็ว และที่สำคัญมันเป็นพื้นฐานของภาษาอื่น ๆ ที่ถูกจัดอยู่ใน C-Style Programing หรือภาษาที่มีรากฐานมาจากภาษา C มีลักษณะการเขียนเหมือนกับภาษา C\
การเริ่มเรียนภาษา C มีหลายวิธี แต่สำหรับเราแล้ว มาเรียนกันแบบรวดเร็วทันใจกันเลยดีกว่า โดยจะมีปัญหาให้แก้และเขียนโปรแกรมเพื่อประมวลผลออกมา เพื่อแก้ปัญหานั้น ๆ ก่อนอื่นเลยของเกริ่มเรื่องเบื้องต้นสักนิด การเขียนภาษา C จำเป็นต้องมี header เป็นการบอกให้ C คอมไพเลอร์ นำไฟล์อินพุท เอาทํพุท มาตรฐานมารวมกับไฟล์ จะอยู่บนสุดของโปรแกรม เช่น

Code:
#include <stdio.h> // header ของโปรแกรม จำเป็นต้องมีทุกโปรแกรม
main ( ) 
{
int A; 
A = 20; 
printf ("Turbo C \n"); 
printf ("Easy Program"); /* function printf */ 
}
แล้วก็มาดูคำสั่งพื้นฐานกับเล็ก ๆ น้อย ๆ
ในการแสดงผลออกทางหน้าจอเราจะใช้ printf("ข้อความ"); หรือหากมีตัวแปรเราจะใช้ printf("ข้อความ %d",x) %d คือตำแหน่งที่จะให้แสดงค่าของตัวแปรชนิด int และ x คือตัวแปรที่จะให้แสดงในตำแหน่ง %d และตัวแปรแต่ละชนิดจะใช้ตัวแทนค่าไม่เหมือนกัน

%d : int
%u : unsigned int (จำนวนเต็ม)
%f : float (ทศนิยม)
%c : char (ตัวอักษร 1 ตัว)
%s : string (ข้อความ)

และการแสดง Escape char คือรหัสที่ขึ้นด้วย /

\n : ให้ขึ้นบรรทัดใหม่
\t : ให้เว้น tab เป็นระยะ 8 ช่วง
\a : ส่งเสียงบีป
\\ : เครื่องหมาย Backslash

การรับข้อมูลทางคีย์บอร์ดใช้ scanf("string_format",address_list)
string_format คือตัวแทนชนิดข้อมูล
address_list คือชื่อตัวแปรที่จะเป็นตัวเก็บค่าที่รับเข้ามา
ในการรับค่ามาใช้ต้องอ้าง & เสมอเมื่อค่าที่รับมาไม่ใช่ string เช่น

Code:
#include <stdio.h> // header ของโปรแกรม จำเป็นต้องมีทุกโปรแกรม
main ( ) 
{
int A; 
string borN;
printf ("Please enter you age :");
scanf("%d",A);
printf("You age is : %d\n",&A) ; //รับค่ามาใช้ต้องอ้าง & เสมอเมื่อค่าที่รับมาไม่ใช่ string
printf("When was your born : ");
scanf("%s",borN); //รับค่า string ไม่ต้องอ้าง &
}
เริ่มกันเลยดีกว่ากับปัญหาแรก
กบ Dowload ปัญหา
เรื่องมีอยู่ว่า มีกบน้อยตัวหนึ่ง สามารถกระโดดไปได้ทุกทิศทุกทางบนระนาบ และกระโดดเป็นระยะ X หน่วยพอดี อยู่มาวันหนึง กบน้อยกระโดดจาก A ไป B ซึ่งอยู่บนระนาบห่างกัน Y หน่วย มันต้องกระโดดอย่างน้อยกี่ครั้งจึงจะไปหยุดที่จุด B พอดี
งานของคุรคือเขียนโปรแกรมเพื่อรับค่า X และค่า Y แล้วคำนวณหาจำนวนครั้งที่น้อยที่สุดที่เจ้ากบน้อยต้องกระโดดจาก A ไป B
ข้อมูลนำเข้า จะเป็นค่าของ X,Y โดยที่ X ไม่กกว่าหรือเท่ากับหนึ่งแลัน้อยกว่าหรือเท่ากับหนึ่งหมื่น โดยที่ X คือจุดเริ่มกระโดดของกบ และ Y คือระยะทางในการกระโดด
ข้อมูลนำออก มีบรรทัดเดียว คือจำนวนครั้งที่กบน้อยกระโดดจาก A ไป B

ตัวอย่าง
ข้อมูลขำเข้า
3 12
ข้อมูลนำออก
4
ข้อมูลขำเข้า
5 23
ข้อมูลนำออก
5
วิเคราะปัญหา
ระยะทาง Y เป็นจำนวนเต็ม ดังนั้นแสดงว่าจุด B บนระนาบก็ต้องเป็นจำนวนเต็มเช่นกัน หากจุด X เป็น 3 แล้วกระโดดเป็นระยะทาง 12 หน่วย แสดงว่ากบกระโดดไปทางไหนก็ตามซึ่งเป้าหมายคือจุด B และแน่นอนจาก A ไป B ต้องมีระยะที่สั้นที่สุดในการที่จะกระโดดไปจุด B ซึ่งหากพิจราณาจากตัวอย่างแล้วผลลัพธ์ที่ออกมาได้จากการนำ Y ไปหาร X แล้วหาเศษหากเศษเป็น 0 ก็นำค่าที่หารได้มาแสดง แต่หากเศษมากกว่า 0 ก็ปัดค่าขึ้น

เขียนโปรแกรม
Code:
#include <stdio.h>
int main(){
int x , y ;
scanf("%d %d",&x,&y); //รับค่า x และ y เข้ามาในหน่วยความจำ
if(y%x==0){ // นำมาหารเอาเศษ หากเศษเท่ากับ 0 ให้
printf("%d",y/x); //ให้แสดงค่า y หาร x
}else{
printf("%d",y/x+1); //หากเศษไม่ใช่ 0 ให้แสดงค่า y หาร x แล้วนำไปบวกหนึ่งหรือปัดเศษขึ้น
}
return 0 ;
}