View
2.435
Download
0
Category
Preview:
DESCRIPTION
การเขียนโปรแกรมภาษาซี
Citation preview
ทบทวนการเขียนทบทวนการเขียนโปรแกรมด้�วยภาษาซีโปรแกรมด้�วยภาษาซี
ณั�ฐวุ�ฒิ� ปอโนนสู�งกลุ่��มสูาระฯการงานอาชี�พแลุ่ะเทคโนโลุ่ยี�
โรงเร�ยีนศร�สูะเกษวุ�ทยีาลุ่�ยี
2
เน��อหาเน��อหา•Dev-C++: ซอฟต์%แวุร%ชี�วุยีพ�ฒินา
โปรแกรม•โครงสูร&างโปรแกรมภาษาซ�•ชีน�ดของข&อม�ลุ่ ต์�วุแปร แลุ่ะสู�ญพจน%•ค,าสู�-งควุบค�มการไหลุ่ของโปรแกรม•ฟ1งก%ชี�น•ข&อผิ�ดพลุ่าดท�-พบบ�อยี
3
เร��มต้�นใช้�งาน เร��มต้�นใช้�งาน Dev-C+Dev-C+++
•สูร&างไฟลุ่%ใหม�จากเมน� File > New > Source File
•ทดลุ่องกรอกโปรแกรมต์ามต์�วุอยี�างด&านขวุา
•เซฟไฟลุ่%โดยีใชี&นามสูก�ลุ่ .c เชี�น first.c
4
เร��มต้�นใช้�งาน เร��มต้�นใช้�งาน Dev-C+Dev-C+++
• ทดลุ่องคอมไพลุ่%แลุ่ะร�นโปรแกรม โดยีคลุ่�4กป�5ม หร6อกด F9
• หากด�ผิลุ่ลุ่�พธ์%ไม�ท�น: เพ�-มค,าสู�-ง getchar() หร6อ system("PAUSE") ด&าน
ท&ายีของโปรแกรม หร6อ เร�ยีกโปรแกรมจาก Command Prompt
5
ด้บ กโปรแกรมด้�วย ด้บ กโปรแกรมด้�วย Dev-Dev-C++C++
•ระบ�บรรท�ดท�-ต์&องการหยี�ดโปรแกรม (Breakpoint) โดยีคลุ่�4กท�-ต์&นบรรท�ด
•คลุ่�4กป�5ม Debug ( )
• ใชี&ชี�ดค,าสู�-งด&านลุ่�างของโปรแกรมเพ6-อควุบค�มการท,างาน
6
ต้ วอย!างโปรแกรมภาษาซีต้ วอย!างโปรแกรมภาษาซี#include <stdio.h>
int main(){int a, b, sum;printf("Enter A: ");scanf("%d", &a);printf("Enter B: ");scanf("%d", &b);sum = a+b;printf("Sum = %d\n", sum);return 0;
}
#include <stdio.h>
int main(){int a, b, sum;printf("Enter A: ");scanf("%d", &a);printf("Enter B: ");scanf("%d", &b);sum = a+b;printf("Sum = %d\n", sum);return 0;
} ค6นค�า 0 เพ6-อระบ�วุ�าโปรแกรมจบการท,างานโดยีไม�ม�ข&อ
ผิ�ดพลุ่าด
อ�านไฟลุ่% stdio.h เพ6-อเอาฟ1งก%ชี�นมาต์รฐานมาใชี&
ฟ1งก%ชี�น main ระบ�จ�ดเร�-มต์&นของโปรแกรม ค6นค�ากลุ่�บเป8น
int ประกาศต์�วุแปรแบบ int สูามต์�วุ
ค6อ a, b แลุ่ะ sum
ฟ1งก%ชี�นมาต์รฐาน printf() ใชี&พ�มพ%ข&อควุามออกทาง
หน&าจอ ฟ1งก%ชี�นมาต์รฐาน scanf() ใชี&ร�บอ�นพ�ทจากแป9นพ�มพ%
7
โครงสร�างหน!วยความจำ%าโครงสร�างหน!วยความจำ%า
1 ช้!อง = 1 ไบต้' (8 บ�ต้)
ต้%าแหน!งท�อย(!(address)
ขี�อม(ลท�เก*บ(data)
0000 320001 670002 2550003 00004 121
: :
8
•ใชี&แทนการอ&างถึ;งหน�วุยีควุามจ,า ณั ต์,าแหน�งหน;-ง ๆ เพ6-อใชี&ในการเก=บข&อม�ลุ่ (ท�-เปลุ่�-ยีนค�าได&)
ในขณัะประมวุลุ่ผิลุ่
ต้ วแปรต้ วแปร (Variable)(Variable)
short a, b, sum;a = 10;b = 5;sum = a+b;
short a, b, sum;a = 10;b = 5;sum = a+b;
ต้%าแหน!ง ค!า: :
1000 2
1001 30
1002 211
1003 5
1005 23
: :
1004 8
10
0
5
0
0
15
b ม�ค�า 5 (อ&างถึ;งค�า)&b ม�ค�า 1002 (อ&างถึ;งต์,าแหน�ง)
a
b
sum
9
ช้น�ด้ขี�อม(ลพื้��นฐานช้น�ด้ขี�อม(ลพื้��นฐานการ
ประกาศขีนาด้(ไบต้'
)ค!าต้%�าส/ด้ ค!าส(งส/ด้
char 1 -128 +127unsigned char 1 0 255short 2 -32,768 +32,767unsigned short 2 0 65,535
int2
หร6อ 4
-32,768 หร6อ -2,147,483,648
+32,767 หร6อ +2,147,483,647
unsigned int
2 หร6อ 4
0 65,535 หร6อ 4,294,967,295
long 4 -2,147,483,648 +2,147,483,647unsigned long 4 0 4,294,967,295
long long 8 −9,223,372,036,854,775,808
+9,223,372,036,854,775,807
unsigned long long 8 0 18,446,744,073,7
09,551,615
10
ช้น�ด้ขี�อม(ลอ��น ๆช้น�ด้ขี�อม(ลอ��น ๆ•เลุ่ขทศน�ยีม (floating point)
float (4 ไบต์% ) เก=บเลุ่ขทศน�ยีมแบบ single precision
double (8 ไบต์% ) เก=บเลุ่ขทศน�ยีมแบบ double precision
•ต์�วุชี�4 (pointer)•อาร%เรยี% (array)
11
•เป8นต์�วุแปรท�-เก=บต์,าแหน�งของหน�วุยีควุามจ,า เพ6-อใชี&อ&างอ�งข&อม�ลุ่ในหน�วุยีควุามจ,า
ต์,าแหน�งอ6-น ๆ
ต้ วแปรแบบต้ วช้�ต้ วแปรแบบต้ วช้� (Pointer)(Pointer)
short a = 57;short *p;p = &a;*p = 78;
short a = 57;short *p;p = &a;*p = 78;
ต้%าแหน!ง ค!า: :
0020 2
0021 30
0022 211
0023 5
0025 23
: :
0024 8
57
0
20
0
p
78
0
a
p ม�ค�า 20 (ค�าของ p)&p ม�ค�า 22 (ต์,าแหน�งของ p)*p ม�ค�า 78 (ค�าในต์,าแหน�งท�- p ชี�4อยี��)
12
อาร'เรย'และสต้ร�งอาร'เรย'และสต้ร�ง•ข&อม�ลุ่แบบอาร%เรยี%เป8นการรวุมกลุ่��ม
ข&อม�ลุ่ชีน�ดเด�ยีวุก�นไวุ&เป8นแถึวุลุ่,าด�บ•จ�ดเป8นต์�วุแปรแบบต์�วุชี�4ประเภทหน;-ง
short arr[3];arr[0] = 50;arr[2] = 89;
short arr[3];arr[0] = 50;arr[2] = 89;
arr ม�ค�า 20arr[0] ม�ค�า 50&arr ม�ค�า 20*arr ม�ค�า 50
23
8
ต้%าแหน!ง ค!า: :
0020 2
0021 30
0022 211
0023 5
0027 12
: :
0026 33
0025
0024
50
0
89
0
arr
13
ขี�อม(ลประเภทสายอ กขีระ ขี�อม(ลประเภทสายอ กขีระ ((สต้ร�งสต้ร�ง))
• “สูต์ร�ง” ค6ออาร%เรยี%ของอ�กขระโดด (array of char)
char s[] = "Hello";printf("%c %c %c\n", s[0], s[1], s[2]);
char s[] = "Hello";printf("%c %c %c\n", s[0], s[1], s[2]);
H e lH e l
ผิลุ่ลุ่�พธ์%:
14
ส ญพื้จำน' ส ญพื้จำน' (Literal)(Literal)• เป8นเสูม6อน “ค�าคงท�-” ท�-ปรากฏอยี��ภายีในโปรแกรม• จ,านวุนเต์=ม (ชีน�ดข&อม�ลุ่ char, short, long,...)
เชี�น 10, -30• จ,านวุนเต์=มแบบยีาวุ (ชีน�ดข&อม�ลุ่ long long)
เชี�น 123456789012LL• เลุ่ข Floating point (ชีน�ดข&อม�ลุ่ float, double) เชี�น 3.14, 500.0
• อ�กขระโดด (ชีน�ดข&อม�ลุ่ char) เชี�น 'a'
• สูต์ร�ง (ชีน�ดข&อม�ลุ่ char*) เชี�น "Hello"
15
การร บการร บ//แสด้งผลแสด้งผล•ฟ1งก%ชี�นมาต์รฐาน (เพ6-อการร�บ/แสูดงผิลุ่ข&อม�ลุ่)
ถึ�กเต์ร�ยีมไวุ&ในเฮดเดอร%ไฟลุ่% “stdio.h”
•ฟ1งก%ชี�นร�บข&อม�ลุ่ scanf สู,าหร�บต์�วุแปรท�กชีน�ด (ระบ�ด&วุยี %format)
getchar, getch สู,าหร�บต์�วุแปรชีน�ดอ�กขระโดด gets สู,าหร�บต์�วุแปรชีน�ดสูต์ร�ง
•ฟ1งก%ชี�นแสูดงผิลุ่ข&อม�ลุ่ (Output Function) printf สู,าหร�บต์�วุแปรท�กชีน�ด (ระบ�ด&วุยี %format)
16
การแสด้งผลขี�อม(ลการแสด้งผลขี�อม(ล•ท�กอยี�างในหน�วุยีควุามจ,าลุ่&วุนเป8น
ต์�วุเลุ่ข•การแสูดงผิลุ่ลุ่�พธ์%ด&วุยีฟ1งก%ชี�น printf
จ;งต์&องระบ�ร�ปแบบต์ามท�-เราต์&องการจะเห=นchar c = 65;
printf("c (as a number) = %d\n", c);printf("c (as a character) = %c\n", c);
char c = 65;
printf("c (as a number) = %d\n", c);printf("c (as a character) = %c\n", c);
หน!วยความจำ%า:
2
30
65
5
23
:
8
c
c (as a number) = 65c (as a character) = A
c (as a number) = 65c (as a character) = A
ผิลุ่ลุ่�พธ์%:
17
%format %format ใน ใน scanf scanf และ และ printfprintf
ช้น�ด้ขี�อม(ล ช้น�ด้ต้ วแปร %forma
t
จ,านวุนเต์=ม
int %dlong %ldlong long %lldunsigned int %uunsigned long %luunsigned long long %llu
จ,านวุนม�ทศน�ยีม
float %f
double %lf
อ�กขระโดด char %c
สูต์ร�ง char array[] %s
18
ต้ วอย!างการใช้� ต้ วอย!างการใช้� scanfscanfchar name[20];int age;
printf("Enter your name and age: ");scanf("%s %d", name, &age);
printf("Hello %s. You are %d years old.\n",name, age);
char name[20];int age;
printf("Enter your name and age: ");scanf("%s %d", name, &age);
printf("Hello %s. You are %d years old.\n",name, age);
Enter your name and age: Tony 38Hello Tony. You are 38 years old.
Enter your name and age: Tony 38Hello Tony. You are 38 years old.
ผิลุ่ลุ่�พธ์%:
19
การไหลขีองโปรแกรมการไหลขีองโปรแกรม•โปรแกรมแบบง�ายี ท,างาน
รวุดเด�ยีวุจากบนลุ่งลุ่�าง
STARTSTARTSTARTSTART
ENDENDENDEND
StatementStatementStatementStatement
โปรแกรมท�มค%าโปรแกรมท�มค%าส �งเด้ยวส �งเด้ยว
โปรแกรมท�มโปรแกรมท�มหลายค%าส �งหลายค%าส �ง
StatementStatement11StatementStatement11
StatementStatement22StatementStatement22
StatementStatementnnStatementStatementnn
ENDENDENDEND
STARTSTARTSTARTSTART
StatementStatement33StatementStatement33
20
การควบค/มการไหลขีองการควบค/มการไหลขีองโปรแกรมโปรแกรม
•ค,าสู�-งก,าหนดเง6-อนไข โครงสูร&าง if โครงสูร&าง if…else
•ค,าสู�-งวุนซ,4า โครงสูร&าง while loop โครงสูร&าง do…while loop โครงสูร&าง for loop
•โปรแกรมยี�อยี (ฟ1งก%ชี�น)
21
โครงสร�าง โครงสร�าง ififif (if (conditioncondition) ) {{ statement1;statement1;
:: statementN;statementN;}}
if (if (conditioncondition) ) {{ statement1;statement1;
:: statementN;statementN;}}
C SyntaxC Syntax
STARTSTARTSTARTSTART
ENDENDENDEND
StatementStatementStatementStatement
conditionconditionconditionconditiontrue
false
StatementStatementStatementStatement
FlowchartFlowchart
• สู�วุนของ conditioncondition ต์�ควุามเป8นข&อม�ลุ่แบบ int
• ท,าค,าสู�-งใน {} หาก conditioncondition เป8นจร�ง (ไม�เป8นศ�นยี%)
• หากม�ค,าสู�-งเด�ยีวุไม�จ,าเป8นต์&องใชี&วุงเลุ่=บป@กกา
22
โครงสร�าง โครงสร�าง if…elseif…else
if (if (conditioncondition)){ { statementstatementt1t1;; statementstatementt2t2;;}}elseelse{{ statementstatementf1f1;; statementstatementf2f2; ; }}
if (if (conditioncondition)){ { statementstatementt1t1;; statementstatementt2t2;;}}elseelse{{ statementstatementf1f1;; statementstatementf2f2; ; }}
C SyntaxC SyntaxFlowchartFlowchart
STARTSTARTSTARTSTART
ENDENDENDEND
StatementStatementf1f1StatementStatementf1f1
conditionconditionconditionconditiontrue false
StatementStatementt1t1StatementStatementt1t1
StatementStatementf2f2StatementStatementf2f2StatementStatementt2t2
StatementStatementt2t2
23
โครงสร�างโครงสร�าง ifif แบบหลายแบบหลายเง��อนไขีเง��อนไขีif (x==1)
Action1;else if (x==2) Action2;else if (x==3) Action3;else if (x==4) Action4;else Default_Action;
if (x==1) Action1;else if (x==2) Action2;else if (x==3) Action3;else if (x==4) Action4;else Default_Action;
false
Action1;Action1;x==1x==1
Action2;Action2;x==2x==2
Action3;Action3;x==3x==3
Action4;Action4;x==4x==4
true
true
true
true
false
false
false
Default_Action;Default_Action;
24
โครงสร�างโครงสร�าง switch-caseswitch-caseswitch (x) { case 1: Action1; break; case 2: Action2; break; case 3: Action3; break; case 4: Action4; break; default: Default_Action;
break;}
switch (x) { case 1: Action1; break; case 2: Action2; break; case 3: Action3; break; case 4: Action4; break; default: Default_Action;
break;}
false
Action1;Action1;x==1x==1
Action2;Action2;x==2x==2
Action3;Action3;x==3x==3
Action4;Action4;x==4x==4
true
true
true
true
false
false
false
Default_Action;Default_Action;
25
โครงสร�าง โครงสร�าง whilewhile ล(ปล(ป
• วุนท,าค,าสู�-ง stmt1 ถึ;ง stmtNต์ราบเท�าท�- condition เป8นจร�ง
conditionconditionconditioncondition
ENDENDENDEND
STARTSTARTSTARTSTART
true
StatementStatementStatementStatement
StatementStatementStatementStatement
false
while (condition) { stmt1; stmt2; : stmtN;}
while (condition) { stmt1; stmt2; : stmtN;}
26
โครงสร�าง โครงสร�าง do…whiledo…while ล(ปล(ป
• ท,าค,าสู�-ง stmt1...stmtN แลุ่ะวุนท,าซ,4าอ�กต์ราบเท�าท�- condition ยี�งคงเป8นจร�ง
• น�-นค6อ stmt1...stmtN จะถึ�กกระท,าอยี�างน&อยีหน;-งคร�4ง ENDENDENDEND
conditionconditionconditioncondition
false
STARTSTARTSTARTSTART
StatementStatement11StatementStatement11
StatementStatementNNStatementStatementNN
true
do { stmt1; stmt2; : stmtN;} while (condition);
do { stmt1; stmt2; : stmtN;} while (condition);
27
ล(ปวนน บ ล(ปวนน บ ((Counting Counting Loop)Loop)
•หากพ�จารณัาโครงสูร&างของลุ่�ปท�-ใชี&ในโปรแกรมสู�วุนใหญ� ม�กจะเป8นลุ่�ปแบบวุนน�บ
•ลุ่�ปวุนน�บจะม�สู�วุนประกอบด�งต์�วุอยี�างต์�อไปน�4เสูมอint i, sum = 0;
i = 1;while (i <= 10){sum = sum + i;i = i + 1;
}printf("Sum = %d\n", sum);
int i, sum = 0;i = 1;while (i <= 10){sum = sum + i;i = i + 1;
}printf("Sum = %d\n", sum);
ต์�วุแปรท�-ใชี&น�บ
สู�วุนก,าหนดค�าเร�-มต์&น
การปร�บค�าต์�วุน�บ
เง6-อนไขของต์�วุน�บ
ค,าสู�-งท�-ถึ�กท,าซ,4า
28
โครงสร�าง โครงสร�าง for for ล(ปล(ป• เป8นโครงสูร&างท�-ให&ควุามสูะดวุกในการเข�ยีนลุ่�ปวุนน�บ
• การท,างาน1. ท,าค,าสู�-ง init_stmt หน;-งคร�4ง2. ถึ&า condition เป8นจร�ง ท,าค,าสู�-ง statement1...statementN3. ท,าค,าสู�-ง update_stmt จากน�4นกลุ่�บไปท,าข&อ 2
for (init_stmt; condition; update_stmt){ statement1; statement2; : statementN;}
for (init_stmt; condition; update_stmt){ statement1; statement2; : statementN;}
29
การท%างานขีอง การท%างานขีอง for for ล(ปล(ปSTARTSTARTSTARTSTART
ENDENDENDEND
falseconditionconditionconditioncondition
true
Statement1Statement1Statement1Statement1
StatementNStatementNStatementNStatementN
init_stmtinit_stmtinit_stmtinit_stmt
update_stmtupdate_stmtupdate_stmtupdate_stmt
for (init_stmt; condition; update_stmt){ statement1; statement2; : statementN;}
for (init_stmt; condition; update_stmt){ statement1; statement2; : statementN;}
30
โปรแกรมย!อย โปรแกรมย!อย (Subroutine)(Subroutine)
• ในภาษาซ�เร�ยีกวุ�า "ฟ1งก%ชี�น" (Function)• เป8นสู�วุนของโปรแกรมท�-ม�หน&าท�-การท,างานชี�ดเจน
ในต์�วุเอง ซ;-งถึ�กเร�ยีกใชี&ในโปรแกรมหลุ่�กอ�กท�หน;-ง• การเข�ยีนโปรแกรมโดยีแยีกเป8นฟ1งก%ชี�นม�ข&อด�
หลุ่ายีประการ ชี�วุยีแบ�งงานท�-ซ�บซ&อนเป8นงานยี�อยีหลุ่ายีงาน ลุ่ดการเข�ยีนโค&ดท�-ซ,4าซ&อน ซ�อนรายีลุ่ะเอ�ยีดไวุ&ในสู�วุนอ6-น ท,าให&โปรแกรมเข&าใจได&
ง�ายีข;4น ฟ1งก%ชี�นท�-เข�ยีนข;4นมาสูามารถึน,าไปใชี&ในโปรแกรมอ6-นได&
31
ช้น�ด้ขีองฟั4งก'ช้ นช้น�ด้ขีองฟั4งก'ช้ น• ฟ1งก%ชี�นมาต์รฐาน ฟ1งก%ชี�นมาต์รฐาน (Standard (Standard
Functions)Functions) เป8นฟ1งก%ชี�นท�-อยี��ในชี�ดไลุ่บราร�ของภาษาซ� เร�ยีก
ใชี&ได&ท�นท� เชี�น printf(), scanf(), ...
• ฟ1งก%ชี�นท�-ผิ�&ใชี&ก,าหนด ฟ1งก%ชี�นท�-ผิ�&ใชี&ก,าหนด (User Defined (User Defined Functions)Functions) เป8นฟ1งก%ชี�นท�-ผิ�&ใชี&สูร&างข;4นเอง เร�ยีกใชี&ใน main() หร6อจากฟ1งก%ชี�นอ6-นๆ ได&
เหม6อนฟ1งก%ชี�นมาต์รฐาน
32
ต้ วอย!างฟั4งก'ช้ นมาต้รฐานต้ วอย!างฟั4งก'ช้ นมาต้รฐานกล/!มฟั4งก'ช้ น เฮด้เด้อร'ไฟัล' ต้ วอย!างฟั4งก'ช้ น
จ�ดการอ�นพ�ท/เอาท%พ�ท stdio.h scanf, printf,
gets, putsคณั�ต์ศาสูต์ร% math.h sin, cos, exp, powแยีกประเภทข&อม�ลุ่อ�กขระ ctype.h isalpha, isdigit,
islower, isupper
จ�ดการก�บสูต์ร�ง string.h strlen, strcpy, strcmp
อ6-น ๆ stdlib.h rand, atoi, atof
33
ฟั4งก'ช้ นท�ผ(�ใช้�ก%าหนด้เองฟั4งก'ช้ นท�ผ(�ใช้�ก%าหนด้เอง•แบบไม�สู�งค�ากลุ่�บ
ระบ�ชีน�ดข&อม�ลุ่ void ไม�ต์&องม�ค,าสู�-ง return
•แบบสู�งค�ากลุ่�บ ระบ�ชีน�ดข&อม�ลุ่ท�-
ต์&องการ ใชี&ค,าสู�-ง return สู�งค�า
ค6นต์ามชีน�ดท�-ระบ�
void say_hi(char *name){printf("Hi, %s\n", name);
}
void say_hi(char *name){printf("Hi, %s\n", name);
}
int max(int a, int b){if (a > b)return a;
elsereturn b;
}
int max(int a, int b){if (a > b)return a;
elsereturn b;
}
34
การไหลขีองโปรแกรมเม��อการไหลขีองโปรแกรมเม��อใช้�ฟั4งก'ช้ นใช้�ฟั4งก'ช้ น
int incr(int i){ int j; j = i + 1; return j;}
int main() { int k, m = 4; k = incr(m); printf ("k = %d, m = %d\n", k, m);return 0;
}
int incr(int i){ int j; j = i + 1; return j;}
int main() { int k, m = 4; k = incr(m); printf ("k = %d, m = %d\n", k, m);return 0;
}
35
ขี �นต้อนว�ธีก บการขี �นต้อนว�ธีก บการโปรแกรมโปรแกรม
•การออกแบบข�4นต์อนวุ�ธ์�เป8นสู�วุนสู,าค�ญในการพ�ฒินาโปรแกรม
•การ "เข�ยีนโปรแกรม" เป8นเพ�ยีงการแปลุ่งข�4นต์อนวุ�ธ์�ให&อยี��ในร�ปท�-ยีอมร�บได&โดยีต์�วุภาษา
36
ต้ วอย!างต้ วอย!าง•เข�ยีนโปรแกรมเพ6-อร�บต์�วุเลุ่ขระบ�ขนาด
แลุ่ะพ�มพ%ร�ปสูามเหลุ่�-ยีมท�-ม�ขนาดต์ามท�-ก,าหนดEnter N: 3
******
Enter N: 3******
Enter N: 5***************
Enter N: 5***************
37
ต้ วอย!างต้ วอย!าง•เข�ยีนฟ1งก%ชี�น sort(int a[], int n)
เพ6-อเร�ยีงลุ่,าด�บข&อม�ลุ่ในอาร%เรยี%จากน&อยีไปมาก แนวุค�ด: ด;งข&อม�ลุ่ท�-น&อยีท�-สู�ดมาวุางไวุ&
ด&านหน&าท�ลุ่ะต์�วุ 12 34 5 หาต์�วุน&อยีท�-สู�ด
สูลุ่�บท�-มาไวุ&ด&านหน&าท,าซ,4า เฉพาะก�บสู�วุนท�-เหลุ่6อ
2 34 51
12 34 5 21
2 34 51 42
38
ขี�อผ�ด้พื้ลาด้ท�พื้บบ!อยขี�อผ�ด้พื้ลาด้ท�พื้บบ!อย#include <stdio.h>
int main (){int i;
scanf("%d", i);if (i = 0)puts("false");
elseputs("true");
return 0;}
#include <stdio.h>
int main (){int i;
scanf("%d", i);if (i = 0)puts("false");
elseputs("true");
return 0;}
สู�งค�า i ให& scanf แทนท�-จะสู�งต์,าแหน�ง
ใชี&ค,าสู�-งก,าหนดค�า (=) แทนการ
เปร�ยีบเท�ยีบ (==)
39
ขี�อผ�ด้พื้ลาด้ท�พื้บบ!อยขี�อผ�ด้พื้ลาด้ท�พื้บบ!อย#include <stdio.h>
int main (){char s[10];
printf("Enter password: ");scanf("%s", s);if (s == "pass")puts("Correct password");
elseputs("Incorrect password");
return 0;}
#include <stdio.h>
int main (){char s[10];
printf("Enter password: ");scanf("%s", s);if (s == "pass")puts("Correct password");
elseputs("Incorrect password");
return 0;}
ใชี& == เปร�ยีบเท�ยีบสูต์ร�งไม�ได&ใชี&ฟ1งก%ชี�น
strcmp() แทน
40
เอกสารอ�างอ�งเอกสารอ�างอ�ง• สูไลุ่ด%บรรยีายี การโปรแกรมภาษา C โดยี รศ.ธ์�ร
วุ�ฒิน% ประกอบผิลุ่• สูไลุ่ด%บรรยีายี Crash Course in C โดยี
J. R. Cooperstock
Recommended