C uwêííôöðöõ Ð C ÔÖÐÖÕ ÐÊÉÌÊ C ÔÖÐÖÕÊ C ÔÖÐÖÕÊ Ç Ê Æ ~ if eíè ~ for ÒÑÒ ÌÆÊÉÉÊ ~ switch ÉeÍÈ ~ while ÒÑÒ ÊÍÍÔÖÐÖÕÊ ~ 1
C ÔÖÐÖÕ ÐÊÉÌÊ uê~ ÏÒÏÑ Ð ÓÏÖ CUI Ô ÑÊ ÏÒÏÑ ÔÖÐÖÕÎ d ÈÍÉÇÊ ÆÒ Ö ÒÐÑÒ ÊÔÎÏÖÎ d ÉÇÍÊ ÉÌ Windows Ê ÃÕÕ Ã ÃÖ ÒÓÒÒà ÃMicrosoft WordÃÊÊ Linux Ê ÃEmacsà ÃMuleà ÃViÃÊÊ Ð ÓÏÖ Ç ÈÉÔÖÐÖÕÎ Ð ÓÕ ÑÇ uéçíumêfvèíéìêôöðöõ s ÊÐ ÓÏÖ GNU C Ð ÓÏÖ Visual C++ Ð ÓÏÖ Borland C++ Ð ÓÏÖ Linux Ê OS ÉÊ GNU C ÖÏÔÖÖ Ð ÓÏÖÎ Ì Ç É ÈÍÉÆÍ Ð ÓÏÖÊÐÔ Ò ÊÃgccà CUI Ô ÑÊ CUI ÉÊ Î ÈÉÐ ÓÕ ÑËÊ ÎsÆÏ Ñ ÔÏ ÑÉÆÍ Windows Ê ÃÑÑ Òà ÃÔÖÐÖÕà ÃÎÐÑÐÖà ÃMS DOS ÔÖ ÔÒà Linux Ê ÃKtermÃÃConsole ÃÊÊ ÇÈÍÊ ÈÍ Linux Ê OS É CUI Ô ÑÊ Ê ÔÖÐÖÕ ÐÎsÆÉÌÊÊ ÉÆÍ ÊÆ Windows ÉÊ Visual C++, Borland C++ÊÊ ÉÊ CUI Ô ÑÊ Ê uêæ Ê ÉÊ kterm Î ÈÍÇÉÎ ÉÈÍ 2
C ÔÖÐÖÕÊ [1] Ñ ÑÐ ÒÊ [2] ÔÎÏÖÊ [3] Ð ÓÏÖÎ s Ñ ÑÔÎÏÖ Ð ÓÏÖ ÔÒÑ ÔÎÏÖ ÏÔÑÏÐÒÔÎÏÖ [4] Ö ÐÎ s ÖÏÔÖÖÔÎÏÖ ÏÔÑÏÐÒÔÎÏÖ Ö Ï s ÔÎÏÖ [5] s [1] ÏÒÏÑÉÑ ÑÐ ÒÎ Ç ÔÖÐÖÕ ÐuwÉv~ÈÍÔÖÐÖÕÊÇÉÎÑ ÑÐ ÒÉÆÆ Ë ÃÐ ÒÃÉÊ v~èé ÊÿÉÿÉÎ È ÈÊ ÇÉÇÈÎ ÌÉÉÌÊÉÆÆ ÉÃÑ ÑÖÑÒÃÉ ËÇÉÌÆÍ ~ Ê ÊÃÑ ÑÃÉ ÊÍÍÇÉÇ Æ [2] Ñ ÑÐ ÒÎÔÎÏÖÊ ÈÍ C uwé ÈÉÔÖÐÖÕÊÃ****.cÃÉÆÆ É ÈÍÊÇ ÌÍÉÆÍ ÉÌÍ ÊÃC uwé ÈÉÔÖÐÖÕÃÎsÈÃ.cÃÉÊÇÍÊÊÍÊÆ ÔÖÐÖÕÎ ÈÉÔÎÏÖÎÃÑ Ñ ÔÎÏÖÃÉ Ë [3] Ð ÓÏÖÎ sèí ÔÖÐÖÕ ÐuwÇÍÐ ÓÕ Ñ uéçíã ÃÉÃ ÃÊ Ì ÍÈÊeÇ ÆÍÇÉÎ Ð ÓÏÖÉ Ë ÇÊ Ê ÆÊÇÃÐ ÓÏÖÃÉ ÊÍÍÔÖÐÖÕÉÆÍ Ð ÓÏÖÊ ÈÍ ÉÌÍÊÔÖÐÖÕÇ Ê ÈÇÍÊ ÏÔÑÏÐÒÔÎÏÖÇi Ê ÈÍÍ ÏÔÑÏÐÒÔÎÏÖÊÃ****.oÃÉÆÆ ÎÈÉÆÍ Ð ÓÏÖÊ ÈÉ Ê ÏÖ ÕÒÑ ÑÇs ÈÍÍ ÏÖ ÕÒÑ ÑÊ ÔÖÐÖÕ Ê s ÊÊÊÍÆÊ ~ÆÇÆÍÊÇÎsÈÇÉÇ Æ 3
[4] Ö ÐÎ sèí Ö ÐÉÊ ÔÖÐÖÕÊ sê uêôîïö ÖÏÔÖÖÔÎÏÖ ÎÏÔÑÏÐÒÔÎÏÖÊ Ç zè Î È ÇÊ Î sèíêçö ÏÉ ÊÍÍÔÖÐÖÕÉÆÍ Ð ÓÏÖÊÍÉÉÊ Ð ÓÏÖ Êi ÊÖ ÏÎ sèíìêìæí [5] sèí Ð ÓÏÖ Ö ÐÎ sèíéã ÃÉà ÃÊfvÈÍÉÔÎÏÖÇ ÇÍ ÇÍÎ s Ô ÎÏÖÉ Ë ÇÊÔÎÏÖÎ ÉÉ ÈÉÔÖÐÖÕÎ sèí ÌÈÌÔÖÐÖÕÇ ÈÉÉÆÍÊ ÇÊÆÉÈÉÍ ÈÍÊÔÖÐÖÕÊÊÇÇÊ ~Æ ÓÐ Ç ÆÍÇÍÉÆÍ Ð ÓÕ ÑÊ ÈÍÉÉÆÍÊ ÇÇÉÈÇÉÇÊÆ ÇÊ [1]Ê ÉÉ ÔÖÐÖÕÎu È ÎÈÊÇÍÊÊÍÊÆ Linux ÉÊÏÒÏÑ emacs Ð ÓÏÖÊ gcc UNIX ÊÐÔ Ò pwd, ls, cd, cp, mkdir, rm v Ê ŒÊÔ ÕÔ ÑÆÍË f ÔÖÐÖÕ Ð {Ê P38-46 Î s ÔÖÐÖÕÎ ÇÈÉÌÍÆ ÍÇÍÇÍÊÆ Ê ÈÉjÆ 2byte Ò ÑÊ ÎwÌÌ ÒÏÑÔÖÏÊs ÈÍ kterm ÉÊ Ê uñô Ñ ---------------- Ô ÕÒÏÖÐÒÖÊ ÒÏÖÐÒÖ sliceview Î ÈÍ mkdir sliceview sliceview Ê ÈÍ cd sliceview /home/lee/sliceview ÇÍ ÏÖ ÒÒÏÖÐÒÖÊ cp /home/lee/sliceview/main.c./ ÔÎÏÖÎ maic.c, xdisp.c, rw_data.c, byte_swap.c, trans_wl.c, Makefile, liver_1_se1_145.raw)îðó ÈÍ Ð ÓÏÖÎ s make ÔÖÐÖÕÎ s./viewimage liver_1_se1_145.raw 512 512 à wšãêô ÕÔ ÑÊÔÖÐÖÕÌ Ê ÇÈÉÌÍÆ Ô ÕÔ Ñ or ÇÍÖ Ð Í 4
C ÔÖÐÖÕÊ Ç ÔÖÐÖÕÊ ÌÈÊÆÔÖÐÖÕ #include <stdio.h> int main(int argc, char **argv) { return 0; ÊÎÊÔÖÐÖÕÌÇÊ ÇÍ ÈÍÇÉÇÉÇÍ #include <stdio.h> C uwôöðöõê ÊÊ ÈÇÊ Ç uéæí ÇÍÊÔÖÔÖÑÒÐ É ÊÍÌÊÉ Ãstdio.hÃÉÆÆÔÎÏÖÎwÌÌ ÉÆÆ ÉÆÍ ÃwÌÌÃÊ fê Ãstdio.hÃÊ Î#include <stdio.h>êsêeç ÆÍÇÉÉÆÍ ÉÌÍ #include <stdio.h>éææ sé stdio.h ÉÆÆÔÎÏÖÊ ÈËÉÎv~ÈÉÇÉÊÊÍ stdio.h ÊÐ ÓÏÖÊÆÍÇÈÌ ÈÍÉÆÍÔÖÐÖÕÉ Ð Ô ÒÇÍ Î ÈÉÍ ˆÊ Î ÈÉÍÈÍÉÌÊ Ê scanf printf ÊÊ Ç fèíéæíôîïöéæí stdio.h ÊÍÆÊ ÇÃ.hÃÊÔÎÏÖÎÔÒÑ ÔÎÏÖÉ Ë ÔÒÑ ÔÎÏÖÊÊ ÔÖÐÖ Õ Î ÈÍ ÊÈÊÇÍÊÊÍÊÆ Çv~ÈÍÉÆÍ ÈÊÉÌ main ÍÍÌ Êv~ÈÍ uçæí stdio.h ÊËÇÊÍÇ ÍÍÍÔÒÑ ÔÎÏÖÉÈÉ stdlib.h string.h math.h ÊÊÇÆÍ int main(int argc, char **argv) ÔÖÐÖÕÊ Í ÎsÈ main É ÊÍÍ C uwêôöðöõê ÈÇÊ main ÇÍ s ÈÍÍ ÈÊÉÌ sèí Ê ÈËÉ main Ê Êv~ÈÍÉÆÊÇÍÊÊÍÊÆ CuwÊÔÖÐÖÕÊ int main(int argc, char **argv)çí ÌÍ ÉÆÆÇÉÎuÆÉÆÇÌÈÍÆ main Ê ÊÆÍÃintÃÊ Ãmain Ê Ê ÎÈÃÇÉÎ ÈÍ Ãint argcãê main Ç Æ Ê ÎsÈ ÊÊ argv Êu É ÈÆ Ãchar **argvãê ÐÔ ÒÖÏ ÇÍ ÈÍÍ Î ÈÍ ËÊÔÏ ÑÉÆÍ ÔÏ ÑÊ ÈÍv Ê ËÊ ÆÊ ÊÍÆÊÔÖÐÖÕÎ sèééç./a.out HELLO TARO argc Ê Ê 3 ÉÊÍ argv ÊÊ ÊÍÆÊ Ç ÈÍÍ *argv[0]. / a. o u t n *argv[1] H E L L O n *argv[2] T A R O n 5
{ ÉÊÏÒÐÊ main Ê É ÍÍÎsÈ ÔÖÐÖÕÉ sèéæ Ê {ÉÊ ÊÊ Ãreturn 0;ÃÊ ÌÉ Êv~ÈÍ { É ÌÍÉ ÎÔÖÒÐÉ Ë ÏÒÐÎeÇ eê Ê ÌÍÊÊÆÇ ~ ÊÔÖÐÖÕÊu ÈÎfÆÉ ÔÖÒÐÊ ÌÍÎsÈ ÇÇÉÊ main Ê eê ÍÈÍ return 0; main Ê ÊÊ return 0; Îv~ÈÍ ÇÍÊ Ãmain Î sèé ÉÆÆ ÎÈÃÇÉÎ ÈÍ ÊÆ ÇÊv~Ê ÈÉÌ Ê ŠÊÊÆÇ return 0;Îv~ÈÍÇÈ ÎÉÇÉÆÇÉÍÆ Ÿ Ê Ç main Ê Ê ÇÍÉÆÍ s sç ÉÆÍ C uwêôöðöõê Ê uk É u Év~ÈÍÍ ÉÈÉ sêê Î ÉÉÇv~È Ê ÍÍÊÊ ÑÕÐ Ö ÎÉÇÍ Ã Ã printf(" Î ÈÉÇÉÈÆ..."); ÊÍÉÉÊ sê ÇÇÍÊÆËÊ ÇÊÍÌÊÌÆÍ ÈÊÉÇÊ Ê ÍÉt sê ÇÍÇÉÇÉÇÍ sèésê ÊÊÑÕÐÖ ÎÉÇÉÊÆÇÊÆ Ã Ã printf(" Ê %s ÈÎÉÈÊ ~ÉÉÆÌÈÎÇ n", name ); ÊÆ ÔÖÐÖÕ ÐuwÊÍÉÉÊ Î ÈÊÆÌÊÌÆÍÇ C uwéê ÊÃAÃÉ ÊÃaÃÊ ÊÌÊÉÈÉ ÍÍÍ Ÿ ÐÕ ÒÊ Ç ÐÕ ÒÊ ÔÖÐÖÕÊ Êv~ÈÍÕÕÊÍÆÊÌÊÉÆÍ Î ÊÕÕÉÔÖÐÖÕ Ê ÈÉÆÇÉ ÉwÌÈÉÉÇÊ ÉÆÍ C uwêðõ ÒÊ ŠÊ Ç ÆÍ // v ÇÍÈÊsÊ ÍÍÌÉÇ ÈËÉÐÕ ÒÊÊÍ /* É */ É ÎÉ ÇÐÕ ÒÊÊÍ ÉÊv Ê Æ ÇÊ Ê ÌÍÊÊÆ ÊÆ ÐÕ ÒsÊÐ ÓÏÖ ÊÊ uèíí ÇÊ ÇÉÎ ÈÉ sèéçêæ ÎÐÕ ÒÊÈÍÇÉÌÉÇÍ ŸÏ Ò Ò sê Æ ÔÖÐÖÕÎ ÇÉÇÊ Ê Ê ÍÍ ÎÏ Ò ÒÉ Ë ~ Ê ÔÖÒÐÇÉÊÏ Ò ÒÎv ÈÍ ÔÖÐÖÕÊ ~Çt ÊÊÍÊ ÉÇÈÎÊÔÖÒÐÎ ÈÊÇÍÊÊÍÊÆ Ï Ò ÒÎ ÈÍÇÉÊÍÉÉ ÔÖÒÐÊ ÇÍÇÍÌÈÇÊÍ ÊÆ ÊÏÒÏÑÉÊÏ Ò ÒÎ ÍÍÉÇÊÃÑÔÃÎ ÈÍ 6
à à #include <stdio.h> int main(int argc, char **argv) { int i, j; for ( i = 0; i <= 9 ; i++) { for ( j = 0; j <= 9 ; j++) { printf ("%d ", i*j); printf (" n"); return 0; ÊÐ ÔÖÔÖÐÖÕ sample1.c ÎÏÒÏÑ emacs É È sèéììèíæ #include <stdio.h> int main(int argc, char **argv) { /* Ê u */ char name[20]; // char food[20]: // ÇÊŠË /* vèê */ printf(" Î ÈÉÇÉÈÆ..."); scanf("%s", name); printf("%s ÈÎ ÊÈÌÌÈÉ n", name); /* vèê */ printf(" ÇÊŠË Î ÈÉÇÉÈÆ..."); scanf("%s", food); printf("%s Êf ÈÆÌÎÊ n", food); return 0; s kterm CUI Î Ç kterm É mkdir sample É È Enter Ð Î È * ÊÃÑÔ Ñà cd sample É È Enter Ð Î È emacs sample1.c & É È Enter Ð Î È ÆÉ emacs É vêôöðöõêñ ÑÎ ÈÍ 7
ÈËÉ ÈÉÍ ÈÍ Ê ÃCtrlà Ãxà ÃCtrlà ÃsÃÎ ÈÊÍÆ ÃCtrlà ÃxÃÊÃCtrl Ð Î ÈÊÇÍ x Ð Î ÈÃÇÉÎ ÈÍ kterm É ls É È Enter Ð Î ÈÉ sample1.c ÉÆÆÔÎÏÖÇ ÈÍÇÉÎ vèí ƒ ÔÖÐÖÕ sample1.c ÎÐ ÓÏÖÈÍ Ð ÓÏÖ gcc sample1.c É È Enter Ð Î È ÏÖ ÇÉÊÇÍÊ ls É È a.out ÉÆÆÔÎÏÖÇ ÈÍÉÆÍÇÉÎ vèí ÌÈÌÏÖ ÕÒÑ ÑÇ ÉÊÊÍ Ñ ÑÇ ~ÉÉÆÊÆÇ ÇÌÍ ƒ ÔÖÐÖÕÎ sèí./a.out É È Enter Ð Î È sample1.c Êuw Í Î ÈÍ ÈÍÉ ÎÐ ÓÕ ÑÊuÆÉÆÇÊÇÍÊÊÍÊÆ ÈÊÉÌÊÊ Ç Í Ç uéæí ÇÍÎÆÍÌÍ É Ë main Ê Ê char name[20]; char food[20]: ÉÆÆ ÇÆÍ ÇÍÊ Î É ÈÉ ÈÍÈÊ Ê name É food ÉÆÆ ÎÉÇÍ É ÆÍ Ê char Ê ÃÇÊ ÊÊ Î ÍÍÃÇÉÎ È Ê[20]Ê Ê ÍÍÍÍ ÎsÈ ÇÊ ÊÉÆÉÊ Ã4. Ê Æ ÃÉvÈÇ~ËÍ Ã ÊÏÕ Ñà name food ˆ kterm Ê Î ÈÍ printf ÉÆÆ Î ÆÉ ˆÊ Ì Î ÈÍÇÉÇÉÇÍ sample1.c ÉÊ printf(" Î ÈÉÇÉÈÆ..."); ÊÍÆÊ Î ÉÉÆÍ ÇÊ Î sèíé ˆÊÊ Î ÈÉÇÉÈÆ ÉÆÆ Ç ÈÍÍ Ð Ô ÒÇÍÊ scanf ÉÆÆ Î ÆÉ Ð Ô ÒÇÍ ÈÉ ÎÐ ÓÕ ÑÊv ÈÈÍÇÉÇÉÇÍ sample1.c ÉÊ 8
scanf("%s", name); ÊÍÆÊ Î ÉÉÆÍ ÇÊ Î sèíé ÔÖÐÖÕÊ sçÿ ÈÐ Ô ÒÇÍÊ É ÊÊÍ kterm ÇÊÉÇÊÐ ÈÍÉ Enter Ð Î ÈÌÉÊ ÈÉ Ç Ê ÈÉÆÆÉÃnameÃÉÆÆ Ê ÍÍÍÍ ÃÏÕ Ñ Ãkterm Î ÈÉÇÉÈÆ Î ÈÉÇÉÈÆ tarou tarou name ÈÍÉ Î ˆÊ ÈÍ sample1.c ÉÊ printf("%s ÈÎ ÊÈÌÌÈÉ n", name); ÊÍÆÊ Î ÉÉÆÍ ÿ ÊÃnameÃÊ Ð Ô ÒÇÍ ÈÉ Ç ÉÉÆÍ Ê ÉÆÍ ÇÊ Î sèíé Ã%sÃÊ Î Ê ÊeÇ ÆÉ ÈÎ ÊÈÌÌÈÉ ÉÆÆ Ç ˆ kterm Ê ÈÍÍ ÃÏÕ Ñ Ã printf( " %s ÈÎ ÊÈÌÌÈÉ n ", name ); tarou name Î ÈÉÇÉÈÆ tarou tarou ÈÎ ÊÈÌÌÈÉ 9
Ê Æ Ê Ê ÔÖÐÖÕÊ s Ê Æ Îÿ Êv ÈÉÆÇ Í ÉÆÍ Î Ê fèíêíê ÕÕÖ É Îv ÈÉ Ê ÇÉ ÊÍÆÊÊÍ Ð ÓÕ ÑÊ Îv ÈÍÉÌÊÕÕÖÎ ÈÍ ÕÕÖÊ ÉÇÈÎÊ Í Ê ÌÍÉÉ ÍÉÍÆ ÈÍÈÍÊ Í ÊÊ ÎÒÖÑ Ç ÆÉÆÍ Î ÍÉ Î ÇuÆÍÊÊ ÉÆ Í ÈÇÉ ÇuÆÌÈÆÍÆÊ ÍÍÍÊÇ ÊÊÉÆÍ ÆÊ int answer; ÉÆÆ Î sèíé ÕÕÖ ÊÊÇÇÊÃanswerÃÉÆÆ Ê Í Ç ÈÍÍ ÇÊ Í Ç É answer Ê Ê ÇÉ ÉÆÍ ÊÃintÃÊ Ê ÍÍÒ ÑÇ ÉÆÍÇÉÎ ÈÍ ÃÏÕ Ñ Ã ÕÕÖ ÊÊÇÇÊ answer ÉÆÆ Ç Ç answer ÕÕÖ Ê Æ Î ÆÊÊ Î uèí Î ÈÍ ÉÆÆ Ç uéêí uê Í Î ÈÍ Ê Í ÎÇÍÆÊÈÍ ÉÆÍ Î uèí Í Î ÈÍÇÉÎ Ê ué Ë Ê uêê Í Ê ÇÈÎ ÊÈÍÇÉ Í Ê Î ÇÍÇÉ ÉÆÆ ÉÊ ÇÆÍ Ê Ê~ÍÉÆÍ ------------------------------------------------------- Ã Ã Ò Ñ ------------------------------------------------------- 10
Ò Ñ Ê Í Ê ÍÍÒ ÑÊ ŠÎsÈ Ì ÊÊ ÍÍÒ ÑÊÍÉÉ ÊÍ ÈÇÊ Ê int answer; ÊÍÆÊ uèíé Î ÍÍÉÌÊ Ç ÈÍÍÇÉÊÊÍ ÊÆ Ê Ê i ÊÉÇÍÇÉÇÉÇÍ t Ê Î uèí È ŠÊÒ Ñ Ê Î uèí Ê int answer, amari ; answer amari ÊÍÆÊ ÎÏ Ô É ÉÉ uèíçéçéçí Ê Î sèíé Î ÍÍ ÍÍ answer É amari ÉÆÆ ÉÊ Ç ÈÍÍ ÊÊ ÈÍ ÇÍÇÍÍÆÊ ÊÆÍ Î ÇÍÊÇÿj ÉÆÍ ÈÇÈ ÔÖÐÖÕÎ ÈÍ ÊÍÉÉÓÖÓÖÊÊÍÊÊ ÉÆÍ ÈÇÉ Ê ÎÐÕ ÒÉÈÉÆÇÉÍÇÍÌÈ ÇÊÍ ÐÕ ÒÎv~ÈÍÉÌÊÊ sê ÉÊ Î uèêçíêêíêæ Ê Ì sê ÇÉv~ÈÍÉ ÍÇÍÌÈÆÔÖÐÖÕÊÊÍ Ã Ã int answer ; // ÿ ÆÉÍÊ int amari ; // ÉÉ Ò ÑÊ Š vsê C uwêôöðöõé ÆÇÉÊÉÇÍ ÊÒ Ñ ÊÿuÉÆÍ Ò Ñ Ê Ò ÑÊ ŠÎ ÈÍÉÌÊÌÊÉÆÍ s ÊÃ ÇÈÃÊ Î ÍÍÉÌÊ uêóïò ÉsÍÈÍÉÆÍ Ò Ñ ÇÈ ÓÏÒ char 1 short 2 int 4 long 4ÌÉÊ 8 float 4 double 8 long double 8ÌÉÊ 12 char Ê Î ÆÒ Ñ ÉÆÍ Î ÆÇÉÌÉÇÍ ~ Î ÆÉÇÊ int Î ÆÉÇÊ float ÌÈÇÊ double Î ÆÉÍÆ Î ÎÉ Î ÔÖÐÖÕÊ ÉÊ É Ë C uwêôöðöõé Î ÆÒ Ñ Ê float, double, long double Ê ÉÇÆÍ float ÍÍ double ÊËÆÇ Ê Ç ÇÊ Í ÈÊÉÌ Ç uêv ÊÊ float ÍÍÌ double Î ÈÍÉÍÆ 11
vsê Î ÆÍÒ Ñ Ê ÉÆÍ long Ê Ò Ñ char -128 127 short -32768 32767 int -2147483648 2147483647 Ò Ñ ÊÊ ÊÈÊÒ Ñ ÌÆÍ uê Ê~ ÊÒ Ñ Ê Ê unsinged Î ÇÍÊÍÆ ÊÈÊÒ Ñ ÇÈ ÓÏÒ unsigned char 1 0 255 unsigned short 2 0 65535 unsigned int 4 0 2147483647 2+1 Ê Ç Ê Ê uk ÊÊ A Z a z 0 9 ÆÍË_ Î Ñ Ó Î ÆÇÉÇÉÇÍ ÉÉÈ Ê È u k ÉÊÇÍÊÊÍÊÆ ÌÎ Ñ Ó Î ÊÉÇÍÉ Ð ÓÏÖ Ê ÊÏÖ Ç ÈÍ Ã ÈÆ Ã int answer1 ; Ã ~ÉÉ Ã int 1answer ; C uwê wê ÆÊÆ wéê C uwêééé ÊÆÍÐ Ö ÒÉÆÍ ÊÒ Ñ ÎsÍÈ int Ì float ÊÊÌ wêÿéæí ÇÍÍumÎ Ê ÆÇÉÊÉÇÊÆ ÌÉ main Ì printf scanf ÊÊ C u wé Æ Ì Ê Ê ÆÇÉÊÉÇÊÆ Ê Ç ÊÊ v ÊÊ Ê ÌÍÊÊÆ ÆÊ Î ÍÉÆÇÊÍÊÃmax_dataÃÊÍÆÊ É ÇÍÊÍÆ Î Ñ Ó _ Ê Ç ÇÊÉÉÉÇÊ Í ÉÈÉ ÆÉ ÉÆÍ uîèí Ê Ê É uèêçíêêíêæ printf ÊÊ Ê ÍÉ uèíé Ð ÓÏÖ ÊÏÖ Ç ÈÍ Ê Î ÈÍ Î uèíé Í Ç ÈÍÍ ÈÇÈ uèé Ê Í ÊÊ ÇÊÆÉÉÆÍÇÍÇÍ ÊÆ ÇÊÌÌÊ É ÈÍÉ ÈÊÆv ÊÊÍ h ÇÆÍ ÈÊÉÌ ~ Ê Ê Î ÈÍ Ê Ê ÎsÆ Ê Î ÈÍÊÊ ÏÐ Ö Î Æ ÇÍÊ É ÊÍÍ ÔÖÐÖÕÊ ÉÊ 12
ÏÐ ÖÎÃ ÃÊ É ÈÍÊÉ ÊÏÐ ÖÉ ÊÍ Ê ÈÍ ÊÊ uèééçê ÈÉ ŠÊÒ ÑÈÇ ÍÍÇÉÇÉÇÊÆ ÉÉÆÊ int a ; ÊÍÆÊ uèé Ê a ÊÊ ÈÇ ÍÍÇÉÇÉÇÊÆ ÌÈÌ Î ÎÉÒ ÑÎ ÍÉ Ê Í ÉÍÍÍ Ã Ã a = 10.5 ÉÈÉ a ÊÊ 10 Ç ÈÍÍ df Š char, short, int, float, double Ê ÊÓÏÒ Î ÈÍÔÖÐÖÕÎ ÍÊÈÆ ÊÆ Ò Ñ ÊÓÏÒ Îv ÈÍ ÉÈÉ siseof Ç C uwêê ÈÍÉÆÍÊÉÇÍÎ Æ ÊÈÆ 13
ÉÊ teçíò ÑÎ ÈÍ ÌÉÊ teêò ÑÎ ÈÍ te Ð Ô Ò te ˆ ÕÓÑ ÎsÆ Î É Ë C uwéê ÊÍÆÊ ÇÆÍ printf ÈÍÉ É ˆÊ ÈÍ scanf Ð Ô ÒÇÍ ÈÍÉ Î Ç Í getchar Ð Ô ÒÇÍ ÈÍÉ Î Ç Í ÇÍÍÊ Ê stdio.h ÉÆÆÔÒÑ ÔÎÏÖÉ fèíéæí ÈÊÉÌ ÔÖÐÖÕ Ê É ÈÇÊÔÎÏÖÎÏ ÐÖ ÒÈÊÇÍÊÊÍÊÆ ÔÖÐÖÕÊ Ê #include <stdio.h> Îv~ÈÍ printf É scanf Ê Æ --------------------------------------------------------------------------------------- à à printf ("s ÈÍ ÆÍË ", ) --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- à à scanf (" ", & ) --------------------------------------------------------------------------------------- ÉÊ ˆÊ ÈÍÒ ÑÊ ŠÎsÍÈ ~ Ê ÑÔÖÐÏ Ò ÑÕ " É Ì ÊÇÍÊÊÍÊÆ ÿu Ò ÑÊ Š 10 ~ %d 8 ~ %o 16 ~ %x %f %c %s 14
* printf ÉÊ Ê Î ÈÉ ÈÍÇÉÇÉÇÍ Î ÈÍÉÇÊ Ê Ê ÉÉ ÇÊÍÆ Ã Ã %. à ÃÊ Î ÈÍÉÇÊ Ã. ÃÊ Ê ÎsÍÈ Ã Ã Ã1.5ÃÎÃ%5.2fÃÉÆÆ É ÈÍÉ ÊÍÆÊ É 5 Ê Ç ÈÍ ÈÊÆÉ 3 Ç Ê Ê ÍÍÍ Ê ÉÊÆ Ê ÑÔ ÑÉ ÌÍÍÍ 1. 5 0. * scanf ÉÊ Î ÈÍ Ê Ê ÈÎ ÓÐ Ò Î ÇÊÇÍÊÊÍÊÆ ÉÉÈ Ç%s ÉÆÍ Ê Ê Ê Î ÇÉÇÉÍÆ u sample1.c à ÃÊ Ê Êà ÃÎÉÇÉ test ÎÒÖÑ Év~ÈÍÉ Ãtest ÉÆÆ Î ÇÉ Ã ÎÒÖÑÎ síèçéêêí ÉÌÍ scanf ("%d", &test); Ê ÃÐ Ô ÒÇÍ ÈÍÉ Î ÕÕÖ Ê test ÉÆÆ &test test ÕÕÖ Ê ÆÉ Ê ÍÍÃÉÆÆ ÉÆÍ Ê ÉÆÍ Ê Ã ÃÊ uéæí ÆÊ char name[20]; scanf ("%s", name); name ÌÉÊ &name[0] name[0] ÊÍÆÊ ÇÊÍÆ sample1.c ÇÍÊÃÐ Ô Ò ÇÍ ÈÍÉ Î ÕÕÖ Ê name ÉÆÆ Ê ÆÉ Ê ÇÍ Ê ÈÉ ÍÍÃÉÆÆ &name[1] &name[2] name[1] name[2] ÕÕÖ ÉÆÍ ÇÇÉ ha name ÉÆÆ i Ç name Ê ÊÎÒÖÑÎ È ÉÌÍ name É &name[0]ê È Î É &name[3] &name[4] name[3] name[4] 15
Ã Ê Ã sample2.c ÔÖÐÖÕ ˆ kterm ÊÊ #include <stdio.h> int main(int argc, char **argv) { gcc sample2.c Ð ÓÏÖ int tosi ;./a.out s printf ("ÆÊÉÊ ÉÈÇ " ); scanf ("%d", &tosi); ÆÊÉÊ ÉÈÇ 25 ÆÊÉÊ 25 ÉÈÊ printf ("ÆÊÉÊ%d ÉÈÊ n", tosi ); return 0; df Š 5-1 sample2.c ÎÌÉÊ Ç 10 ~ 8 ~ 16 ~ É ÈÍÍÔÖÐÖÕÎ ÍÊÈÆ df Š 5-2 sample2.c ÎÌÉÊ Ì ÈÉ Î È Ç É ÈÍÍÍÆÊÈÊÈÆ ÌÉ Ê Î ÈÊÆ Éà Ã5 Ã. Ã2 Ê ÈÉ Î ÈÊÈÆ Ê 22 É 12 ÌÍÊ Î 6 É ÈÍÉ Î 22.5 ÉÈÍ getchar Ê Ç --------------------------------------------------------------------------------------- à à = getchar ( ) -------------------------------------------------------------------------------------- Ç Ð Ô ÒÇÍ 1 ÉÇÎ ÈÍ ÃÔÖÐÖÕ Ã C uwôöðöõéê Î ÆÒ Ñ Ê char ÉÆÍÇ getchar Î ÉÉ Î Ç ÍÉÇÉÇÊ Î ÈÍ Î int Ê uèêçíêêíêæ ÇÍÊ #include <stdio.h> int main(int argc, char **argv) { /* Ê u */ getchar Ç stdio.h ÔÒÑ ÔÎÏÖÊ É int a; int getchar (void); É uèíéæíçíéæí /* ÕÒÑ ÑÊ */ printf (" ÉÇ ÈÉÇÉÈÆ" ); /* Ð Ô ÒÇÍ */ ÔÖÐÖÕ~ É ÊÐ ÇÆÍ ÌÉÔÖÐÖÕÊ~sÎ ÌÉÆ ÊÊ ÊÌÍÇ ÈÍÍ a = getchar( ); /* ˆÊ */ printf ("%c n", a ); return 0; 16
C uwéê ÊÍÆÊ s Ê Ç ÈÍÉÆÍ ÇÊ ÊÓÒÒ ÎsÆ ÊÊÌÆÍ Ã s à à à zè = a = 5; a Ê 5 Î ÈÍ Ç = a = 5; a Ê 5 ÎzÈÉ É a Î ÈÍ * Ç = a = 5; a ÇÍ 5 ÆÉ É a Î ÈÍ / Í Ê *= a *= 5; a Ê 5 Î ÇÉ É a Î ÈÍ % Í Ê Í /= a /= 5; a Î 5 É ÉÉ Ê É a Î ÈÍ %= a %= 5; a Î 5 É ÉÉ Ê ÍÉ a Î ÈÍ Ã Ã Ãw à == ÈÆ!= ÈÇÊÆ > ÍÍ ÇÆ < ÍÍ ÈÆ >= <= && w w! Ã Ê Ã Ï ÐÖÕ Ò a ; a Ê 1 ÎzÈÉ É a Î ÈÍ a = a 1 É È ÒÐÖÕ Ò a ; a Ê 1 Î ÆÉ É a Î ÈÍ a = a 1 É È v ÈÍÉÇÊ Ï Ó ÔÖ ÆÇÉÊÉÇÍ Ê ÎzÆÉÈÌÆ Ò ÑÇ ÍÍÉÈÌÆÇÉ Ã Ã short answer; answer = 1000 * 1000; ÇÊ short Ê Ç ÆÇÉÇÉÇÍ ÊÃ-32768 32767ÃÉÆÍ ÉÇÍÇ Ã1000 1000à Êv ÊÃ1000000ÃÉÊÍ short Ê ÆÍ ÎzÆÉÈÌÆ ÈÊÉÌ answer Ê Ç ÈÍÍÉÇÊÏ Ó ÔÖ Ç ÈÉÈÌÆ Ò Ñ Ê ÐÕÑÒ C uwôöðöõéê ÊÒ Ñ Î uèé Ê Ê Ê ÈÍÇÉÇÉÇÍ ÈÊÉ 17
ÌÊ ÈÍÉÆÍÌÊÇÐÕÑÒ É ÊÍÍÌÊÉÆÍ ÐÕÑÒ Ê Ò Ñ ÉsÍÈ ÍÍ Ã Ã float answer; int a=7, b=3; answer = a / b; printf ("first answer = %f n", answer); answer = (float) a /(float) b; printf ("second answer = %f n", answer); first answer = 2.000000 second answer = 2.333333 s ÇÊ a É b Ê int É uèéæí Ê a / b ÉÊÈÍÈÍ int Év ÈÍÍ ÉÌÍ 7 / 3 Êv ÇsÍÍÈÊ Ê 2 ÉÊÍ ÇÊ 2 Ç float É uèíéæí answer Ê ÈÍÍÉÌ first answer Ê 2.000000 ÉÊÍ ÇÍÊ È second answer ÉÊ int É uèíéæé a É b ÎÐÕÑÒ Î ÉÉ Ê float Ê ÈÉÆÍ (float) a / (float) b Ê 7.000000 / 3.000000 Î ÈÍ ÉÌÍ v Ç ÉsÍÍÍÇÉÎ ÈÍ ÇÊÇÉÇÍv Ê 2.333333 ÉÊÍ ÇÊ Ç answer Ê ÈÍÍ ÔÖÐÖÕÎ ÈÍÉÇÊ ÊÒ Ñ Î xèííæê ÇÍ ÈÊÇÉÊÍÉÉÏ Ó ÔÖ ÊÊ Ç ÉÇ Êv i Ç ÈÉv ÇsÆÍÍÆÊÊÍ df Š 6-1 ÇÍ ÉÊ Î È ÈÊ ÉÊ Ê s + * / % Î ÈÍÔÖÐ ÖÕÎ ÈÊÈÆ df Š 6-2 df Š 6-1 É ÈÉÔÖÐÖÕÎ s Ç ÉsÍÍ Ì É È ÍÍÍÆÊ ÈÊÈÆ Ê É ÈÈÍ Ê Æ Ã Ã = 1 2 ; Ê Î ÈÉ ÈÆÉÇÊ ~ÉÉÆÍÉÇÊ 0 1 2 ÈÍ Ê Æ Ã Ã int result, a=7, b=10; printf (" a = %d, b = %d ÊÉÇ n", a, b ); result = ( a > b ) printf (" a > b :%d n", result ); result = ( a < b ) printf (" a > b :%d n", result ); a = 7, b = 10 ÊÉÇ a > b : 0 a < b : 1 s 18
df Š 6-3 Ð Ô ÒÇÍ ÈÍÉ ÇÃ Ê ÃÇÊÆÇÎwËÉ ˆÊ ÈÍÔÖÐÖÕÎ ÈÊÈÆ Ã ÏÕ ÑÃ./a.out Ê./a.out yê w Ê Æ Ã Ã = 1 w 2 ; Ê Î ÈÉ ÈÆÉÇÊ ~ÉÉÆÍÉÇÊ 0 1 2 ÈÍ w Ê Æ Ã Ã int result, a=7, b=10; a = 7, b = 10 ÊÉÇ printf (" a = %d, b = %d ÊÉÇ n", a, b ); a >= 10 && b >= 10 : 0 result = ( a >= 10 && b >= 10 ) a <= 10 b >=10 : 1 printf ("a >= 10 && b >= 10 :%d n", result ); result = ( a <= 10 b >=10 ) printf ("a <= 10 b >=10 : %d n", result ); s df Š 6-4 Ð Ô ÒÇÍ ÈÍÉ ÇÃ Ê ÃÇÉ Ã100 ÍÍ ÈÆ ÃÇÊÆÇÎwËÉ ˆÊ ÈÍÔÖÐÖÕÎ ÈÊÈÆ Ã ÏÕ ÑÃ./a.out 232./a.out 56 19
~ if à à if 1-1 w 1-2 sèí else if 2-1 w 2-2 sèí else sèí Çt ÊÉÇÊw Î ÉÉ ÇÇÉÇÉÇÍ s ÈÍ Îv ÈÉ Çà ÃÊÉÇÊ sèí ÇÊ Ê ÊÈÍÊ if ÇÆÉÉÌÍÆ Ã Ã int a, b; printf (" a : n ); scanf ("%d",&a); printf (" b : n ); scanf ("%d",&b); if ( a == b ) { printf ("a É b Ê ÈÆ n" ); else if ( a > b ) { printf ("a Ê b ÍÍ ÇÆ n" ); else { printf ("a Ê b ÍÍ ÈÆ n" );./a.out a : 7 b : 10 a Ê b ÍÍ ÈÆ./a.out a : 10 b : 10 a É b Ê ÈÆ./a.out a : 20 b : 10 a Ê b ÍÍ ÇÆ s df Š 7-1 vœé vœêèíèíê Ç 80 ÆÍÊ ÉÊÍÃtf à ÊÉÍÇÊ Ç 80 Î ÍÊÃtf 10 à ÊÉÍÊ Ì 80 É ÆÍÊÃtf 30 ÃÇwÈÍÍÍ vœé vœê Î ÈÍÊ tf Ç ÈÍÍÔÖÐÖÕÎ ÈÊÈÆ Ã ÏÕ Ñà 20./a.out vœ 85 vœ 90 tf 0./a.out vœ 75 vœ 90 tf 10
eíè ~ for à à for ÏÏ Ñ Ê ÏÏ Ñ Ê sèí ÏÏ ÑÊ eíè Î ÆÍ ~ Ê i ÎÍÇ Æ Ê eíè Î ÌÍ ÏÏ ÑÊ eíèé i Î ÈÍ s ÈÍ Îv ÈÉ Çà ÃÊÉÇÊ sèí ÇÊ Ê ÉÈÍÊ for Î ÆÉÌÍÆ Ã Ã int i; for ( i = 0; i< 5; i++ ){ printf (" ÇÎÊÉÊ%d n", i+1 );./a.out ÇÎÊÉÊ 1 ÇÎÊÉÊ 2 ÇÎÊÉÊ 3 ÇÎÊÉÊ 4 ÇÎÊÉÊ 5 s ÇÊ Ê for Ç sèííéçêê i ÊÊ 0 Ç ÈÍÍ ÌÉ ÉÆÍÃi < 5;ÃÊÃÌ ÈÌ i Ê Ç ÍÍÌ ÈÇÍÊ eíèî ÈÊÈÆÃÉÆÆ ÎÌÉ ÉÌÍ Ê for Ç s ÈÍÍÉÇÊ i = 0 ÉÆÍÊÉ Î ÉÈ Î ÉÈÊÔÖÒÐ{ Ê Ç sèíí ÇÊÇÉÊÍÍ Ê s ÊÊÃÇÎÊÉÊ 1 ÃÉs ÈÍÍ ÔÖÒÐ{ Ê Ç ÍÍÉ ÏÏ ÑÇ ÈÍ eíèçêæç ÈÍÍ ÏÏ ÑÊ ÊÊÏ ÐÖÕ ÒÊÃi++;ÃÇ ÍÍÉ ÆÍÇ ÇÍÊ i = i + 1;É È Î É ÉÌÍ 2 Ê for Ç sèííéçêê i ÊÊ 1 Ç ÈÍÍ ÇÉÊÊÍ i = 1 Ì Ãi < 5;ÃÎ ÉÈÉÌ ËÔÖÒÐ{ Ê Ç sèí ÃÇÎÊÉÊ 2 ÃÉs ÈÍÍ ÇÊÍÆÊ ÎeÍÈ i = 5 ÉÊÉÉ ÉÇÊ for ÊÍÍeÍÈÊ ÈÍ Ö ÔÊ ÍÊÆÍÆÊ ÎÉÇÍ Ã Ö ÔÊ Ã int i, a=0; for ( i = 0; i < 5; a++) { printf (" ÇÎÊÉÊ%d n", i+1 ); ÇÊ ÊÃi < 5;ÃÉÆÍÊÌ ÍÍÈ ÏÏ ÑÊ ÉÊ i Ê ÍÍÉÆÊÆ É ÌÍ ÆÇÍeÍÈÎsÉÉÌ Î ÉÈ ÇÍÇÉÊÊÍ ÇÊ for ÇÍ Ç ÍÇÉÇÉÇÊÆ ÇÊÍÆÊ Î Ö ÔÉÍË Ö ÔÊ ÍÉÔÖÐÖÕÊ ÍÍÇÉÇÉÇÊÆÉÌ È ÈÊÇÍÊÊÍÊÆ Unix ÉÊÃCtrl cãé 21
eíèî~ ÉÌÌÍ ~É break ÉÆÆ Î ÈÍ Ã Ã for ÏÏ Ñ Ê ÏÏ Ñ Ê sèí if ( ) { break; à à int i;./a.out for ( i = 0; i< 10; i++ ){ ÇÎÊÉÊ 1 printf (" ÇÎÊÉÊ%d n", i+1 ); ÇÎÊÉÊ 2 if ( i == 4 ) { ÇÎÊÉÊ 3 break; ÇÎÊÉÊ 4 ÇÎÊÉÊ 5 s ÇÊ i = 5 ÊÊÉÉ É Ê for ÇÍ ÇÍÍÆÊÊÉÉÆÍ df Š 8-1 1 ÇÍ 100 ÌÉÊ ÎzÈ È ÈÊ ÆÎ ˆÊ ÈÊÈÆ df Š 8-2 Ç Ê ÊsÎ È ˆÊ ÈÊÈÆ [Ó Ò] s ÈÍ Ê Î ÈÍÇÉÉ ÇÍÆÊsÇ ÉÇÍ Ã ÏÕ Ñà 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81 22
ÒÑÒ Š Î ÉÉÌÍÆ Ð Ô ÒÇÍ ÈÉ ÉÊ Î ÉÉ zè Ç Ç Í ÊÆÈÍÇÍÎ sè ÍÔÖÐÖÕÎÉÇÍÊÈÆ Ã s Ã./a.out ÿé Ê Î ÈÉÇÉÈÆ 10 É Ê Î ÈÉÇÉÈÆ 5 zè Ç Ç Í ÊÊv ÎsÆÌÈÇ v 15.000000 Š Î ÌÍÆ ÇÎ k ÈÎ ÇÎÇ ÆÊÆÇÌÈÉ Ç ÉÉ Ê Î È ÉÍÇ Ì ÉÇÈÎ ÉÉÊÇÎ ÈÍÔÖÐÖÕÎ ÍÊÈÆ Ã s Ã./a.out ÇÎÇ ÉÉ Ê 30 k ÈÎÇ ÉÉ Ê 10 ÇÎÇ ÉÉ Ê 20 Æ ÇÎ Š Ô ÒÑÎv ÈÍÆ ÉÔ ÒÑ ÑÑÒÕÎ ÈÍÇÉÊÊÍÌÈÉ ÊÔ ÒÑÊ Ô ÒÑ 2.3 h Ô ÒÑÔÏ Ò ÉÆÆv É ÌÍÇÉÊÊÍÌÈÉ ÉÔ ÒÑÔÏ ÒÊ ÊÍÉÉ ÌÍÍÉ ÆÌÈ ÌÉ h ÊÖ ÐÊÍÉÉ ÌÉÉÆÌÈ ÉÖ ÐÎ ÈÍÉ ÊÔ ÒÑŠÎ ÈÍÔÖÐÖÕÎ ÍÊÈÆ Ã ÉÔ ÒÑÔÏ Òà Ãh Êv Ã Ô ÒÑÔÏ Ò Ö Ð h 0 5 80,000 10,000 A 3 6 10 100,000 12,000 B 2.5 10 15 120,000 15,000 C 2 16 150,000 18,000 D 1 à s Ã./a.out 8 Ö Ð b Ô ÒÑ Š 492000 23
ÌÆÊÉÉÊ ~ switch ÉeÍÈ ~ while switch switch Ê Ê Î É ÈÉ Î ÈÌÈ ÃswitchÃÊ ÊÑÏÒÒÉ È ÉÈ Ê Ç ÈÉ É ÈÆÉÇÊ ÈÊÑÏÒÒÇÏ ÊÊÍ Êv~ÈÉ Ç sèíìè à à switch case 1 sèí 1 break case 2 sèí 2 break : : default sèí n à à int direction; switch (direction){ case 1: /* direction==1 Ê */ printf (" Ë~ÌÌÈ n"); break; case 2: /* direction==2 Ê */ printf ("uë~ììè n"); break; case 3: /* direction==3 Ê */ printf (" Ë~ÌÌÈ n"); break; case 3: /* direction==4 Ê */ printf (" Ë~ÌÌÈ n"); break; default: /* direction Ç 1 4 Ê */ printf ("ÈÊ É ÈÌÈ n"); 2 u 1 3 4 24
if É switch Ê~Æ switch Ê Ê Ç É ÈÆÇÊÆÇÎ ÈÍÇÉÈÇÉÇÊÆ switch ÉÊ ÈÍ Ê Î ÈÍÇÉÇÉÇÊÆ Ã Ã==à ÃÊ ÈÇÉÇÊÆ switch É ÇÇÉÇÉÇÊÆ ÃÌÈ a Ê Ç 100 ÍÍ ÇÇÍÊÃ Ã Ê Ç 80 ÊÍ A Ö Ð 60 79 ÊÍ B Ö Ð Ã ÈËÉÊ switch Ê if ÊeÇ ÆÍÇÉÇÉÇÍÇ ÈÊ~ÊÉÇÊÆ df Š 9-1 ÒÑÒ Š Î switch Î ÉÉ ÈÊÈÆ while à à while sèí ÃwhileÃÊÃ Ê ÃÉÆÆ ÉÆÍ ÈÉ Î ÉÈÉÆÍ ÉÇ ÔÖÒÐ{ É ÌÍ É Ê ÎeÍÈ sèí à à int n = 0; while ( n < 100 ){ n = n + 5; printf ("%d n",n); printf (" n");./a.out 5 10 : 95 s for É while Ê~Æ for eíè ÇÍÇÉÉÆÍÉÇÊ while eíè ÇÍÇÍÊÆÉÇÊ df Š 9-1 Ð Ô ÒÇÍÃqÃÇ ÈÍÍÌÉ ÈÉ s ÈÍÔÖÐÖÕÎ ÉÉ ÈÊÈÆ ÃÓ Òà 1 Î síèéçêêñ ÐÖÐÏ Ò ÑÕ ' É Ì 1 Ê Ê char moji; É uèíéæíé if ( moji == ' q ' ) /* moji Ê Ç q ÉÆÍÊÍÊ 25
ÒÑÒ Š s ÔÖÐÖÕÎ ÉÉÌÍÆ ÊÍÆÊ~{Î Í ÇÍ È ËÊ ÎÐ Ô ÒÇÍ ÈÈÍÇÉÉ ÊÊÊÍÆÊ ÌÉÉÊÍ ÇÔÖÐÖÕÎ ÍÊÈÆ Ó Ò ~{Ê Î Ã Ç ÍuÆÍÆÊsÇ ÌÍ ÊÆÍÃÇÉÉsÈ 10 11 12 26
ÊÍÍÔÖÐÖÕÊ C uwéê ÉÊ ÆÍ Ê ÎsÆÉÌÊ ÈÉÔÖÐÖÕ ÌÉ ÉÇÉ main printf, scanf ÊÊ ÌÉÊÔÖÐÖÕ int main (int argc, char **argv) { A Î ÉÉÔÖÐÖÕ int main (int argc, char **argv) { A Î s A A B C B Î s B B C Î s return 0; C C return 0; Î ÆÕÖÒÒ Ê ÍÎÉÇÌÌÈÇÊÍ ÌÉÌÉÉ Î É È main ÉÊÈÍÎ Ë ÈÉÇÊÈÉÆÇÉ Ê ÍÎÉÇÌ ÌÈÇÊÍ Ë ÈÉ Ê ÎÐÕ ÒÊ ÈÉÆÇÉÈÍÊÍÇÍÌÈÇÊÍ ÔÖÐÖÕÇ ÆÌÈÇÊÍ wììèç Î uèìèæ ÇÉÊ Î ÈÍÇÉÉ ÔÖÐÖÕÑ ÑÊs Î ÇÈÍÇÉÇÉÇÍ uçç ÇÊ ÇÉÊÔÖÐÖÕÎwÌÌÈÇ Î uèìèçèéçíí È ÎsÆt sêð ÒÎ Ì Ç uçêçêí ÔÖÐÖÕÊ É Ì sèí Î ÊÈÉÆÇÉ Î Ë È sîv~èíéçé Ì ÈÍÇÉÇÉÇÍ Ñ ÑÐ ÒÎ ÈÌÈÇÊÍ ÆÍ É ÇÆÉÉ ÈÊ Î ÈÍÉÇÉÈÌ ÌÈÌ ÈÐ ÒÎÔÖÐÖÕ ÊÆÉÇÉÊv~ÈÉÆÉÍ Îu ÈÉ ÈÊÇÍÊÊÍÊÆ df Š 10- Ñ ÒÎÏ ÒÊ ÈÍ Î È Ð Ô ÒÇÍÑ Ò Ê Î ÈÉÉÇ Ï Ò Ê ÈÍÉ Ç ÈÍÍÔÖÐÖÕÎ ÍÊÈÆ df Š 10-2 Ð Ô ÒÇÍ ÉÊ Ç ÈÍÉÉÇ ÈÊ ÉÊ Ê ÎÈËÉ ÌÍÔÖÐÖÕÎ Í ÊÈÆ ÉÉÈ Î ÌÍ ÉÇÍÊÍÆ Ê ÉÈÉ È ÈÊ Ê Í Ê Ã ÃÉÈÊÈÆ 27
Ê Í Ã Ã Í ÊÒ Ñ Ò Ñ Ò Ñ sèí return Í Ã 1à #include <stdio.h> void disp_msg (void); /* ÔÖÒÑÏÔ u */ int main ( int argc, char **argv) { printf ("main ÑÑ Ò n"); disp_msg ( ); /* disp_msg ( ) Ê Ë È */ printf ("main Ê ÉÉ n"); return 0; void disp_msg ( void ) { printf ("disp_msg s n"); return; Î ÍÉÇÊÔÖÒÑÏ Ô uîv~èíçèîéç ÉÆÇÉÍÆ./a.out main ÑÑ Ò disp_msg s main Ê ÉÉ s à 2à #include <stdio.h> int calc_add (int, int ); /* ÔÖÒÑÏÔ u */ int main ( int argc, char **argv) { int a, b, c; printf (" "); scanf (" %d", &a ); printf (" "); scanf (" %d", &b ); c = tasizan ( a, b ); /* calc_add ( ) Ê Ë È*/ printf ("%d + %d = %d n", a, b, c); return 0; int calc_add ( int value1, int value2 ) { int result; result = value1 + value2; return result; 28./a.out 10 22 10 + 22 = 32 s
~ A M 1980 12 12 163.5 62.0 B F 1978 1 23 156.3 50.0 C M 1960 3 10 175.5 70.3 s s ÊÍÆÊÒ ÑÎ ÈÉÆÉÇÊÊÊÆÈÍÊjÆÇ ÈËÉÊ Ê Î ÈÍ char Aname[20]; char Asex; int Ayear;... ÿ ÊÉÇ ÉÊ Ç uéêí Ç ÆÍÊ ÆÍËÊ Ê Ç ÇÊÍ ÔÖÐÖÕÇÍÇÍÊÇÇÕÑÌ ÆÍ Î ÈÍ char name[3][20]; char sex[3]; int year[3];... Ê ÉÊ Î ÈÍ uçæí ÿ ÊÒ ÑÎ ÈÉ ÉÊ É ÈÍÉÌ Çt ÊÊÍ ~ Î ÈÍ struct person hanako; Ò Ñ person ÉÈÉ uèíé hanako Ê char char int int int float float A m 1980 12 12 163.5 62.0 name sex year month day height weight ~ ÉÊ ÊÍÒ Ñ Ê Îÿ É ÈÍÇÉÇÉÇÍ ÔÖÐÖÔ Çi Ê ÈÍÇÉÊÉÇÍÒ Ñ ~ Ê Ê u w ~ ÑÐ Ê fèéò Ñ Ê person ~ ÊÕ Ó ~ Ê ÌÍÍ name, sex, year... 29
~ Ê Ê u à à struct ~ ÑÐ Ò Ñ Õ Ó Ò Ñ Õ Ó Ã Ã struct person { person char name[20]; float height; name height weight float weight; ; *) ~ Ê Ê uê Î ÍÍÉÌÊ Í Êvv Î ÌÍ ÉÆÍ ÉÌÍ Ê Î ÍÍÉ ÌÊ Ç ÈÍÍÍÇÉÊÊÆ ~ Ê Î ÍÍÍÍÍÆÊÈÍÊÊ ~ Ê Ê uî síêçíêêíêæ ~ Ê u à à struct ~ ÑÐ Ã Ã struct person taro; taro name height weight ÇÊ uêíí ~ person Ê Í ÈÍÍ Ê ué Ê uî ÊsÆ ~ Ê Î uèíé Ê ÈÊ ~ Ê Î uèíçéìéçí Ê ÉÊÐ ÒÊ ÊÉÍÌ È Î É Ê ué Ê uî ÂÊsÆ struct person { char name[20]; float height; float weight; ; struct person taro; Ê ué Ê uî ÊsÆ struct person { char name[20]; float height; float weight; taro ; 30
ÃÔÖÐÖÕ Ã # include <stdio.h> int main (int argc, char **argv) { struct person { /* ~ Ê f */ char name[20]; float height; float weight; ; ~ ÊÕ Ó Î ÈÍ Ã Ã ~ Õ Ó vôöðöõê taro.name taro.height taro.weight struct person taro; /* Ê u */ print (" "); /* Ê */ scanf ("%s", taro.name); print (" "); scanf ("%f", taro.height); print (" "); scanf ("%f", taro.weight); printf(" n"); ÇÍÍÊ ~ Ê É ÈÍÆÊ ÆÇÉÇÉÇÍ taro.height = 160.0 ÌÉ ~ Ê Ê Î u ÈÉ ÈÍÇÉÌÉÇÍ struct person human[3]; printf (" %s n", taro.name); /* Ê */ printf (" %f n", taro.height); printf (" %f n", taro.weight); Ê ÊÕ Ó Ê human[0].name human[0].height human[0].weight return 0; df Š 11- s ÊÒ ÑÎ ÉÇÍ ~ Î È ÈÉ Ê Ò Ñ ÊÊ ÎÐ Ô ÒÇÍ È ÈÈÍÔÖÐÖÕÎ ÍÊÈÆ ~ Î Ê È Î ÈÍÉÇÊ main ÍÍÌ Ê ÈÍ Îv~ÈÍ or ÊÔÖÒÑÏÔ uîv~èí ~ Ê Ê uê ÊÔÖÒÑÏÔ uííì ÊsÍÊÇÍÊÊÍÊÆ 31
ÃÔÖÐÖÕ Ã # include <stdio.h> struct person { /* ~ Ê f */ char name[20]; float height; float weight; ; /* ÊÔÖÒÑÏÔ u */ void show_struct ( struct person dat ); int main (int argc, char **argv) { struct person taro; /* Ê u */ print (" "); /* Ê */ scanf ("%s", taro.name); print (" "); scanf ("%f", taro.height); print (" "); scanf ("%f", taro.weight); printf(" n"); ÊÔÖÐÖÕ ÉÊ ~ Ç ÈÉÆÍ ÎÈÊÌÌ Ê È ÉÆÍ ÇÍÎ ÈÉuÆÇ Ç Ê Ç ÉÉ ÉÊ Õ Ó Ê Î ÈÍÇÉÇÉÇÊÆ Ç ÉÉ ÉÕ Ó Ê Î ÈÍÉÌÊÊ ÈÎÈÊÇ ÍÊÊÍÊÆ ÈÊ Ê f void show_struct (struct person *dat) É ~ Õ Ó Î ÈÍ dat->name dat->height dat->weight Î sèíéç show_struct ( &taro); show_struct (taro); /* ~ Ê Î */ return 0; /* show_struct */ void show_struct (struct person dat) { printf (" %s n", dat.name); /* Ê */ printf (" %f n", dat.height); printf (" %f n", dat.weight); return; df Š 11-2 vêôöðöõî ÈÊ È show_struct É ~ Õ Ó Ê Ç ÉÇÍÇÉÎ Ç ÌÉÌÍÆ 32