อารเ์ รย์ Array
อาร์เรย์ ตวั แปรแบบอาร์เรย์ คือ กลมุ่ ของตวั แปรชนิดเดียวกนั มากกวา่ 1 ตวั ที่ใช้ชื่อเดยี วกนั ซ่ึง ก า ร เ ข้ า ถึ ง ส ม า ชิ ก (element) แต่ละตวั จะใช้ดรรชนี (index หรือ subscript) ท่ี เป็นเลขจานวนเตม็ ในการระบุ ดรรชนีของอาร์เรย์ทกุ ชนิดในภาษา C จะเร่ิมที่ 0 เสมอ
อาร์เรย์แบบ 1 มติ ิ คือ ตัวแปรท่ีมีตัวเลขแสดงตำแหน่งเพียงตัวเดียว และสำมำรถเก็บข้อมูลได้ตำมจำนวนตวั เลขนนั้ กำรจะใช้ งำนตวั แปรอำร์เรย์จะต้องมีกำรประกำศคำ่ เสียก่อน
การประกาศค่าอารเ์ รย์ 1 มติ ิ รูปแบบ ชนิดตวั แปร ช่ือตวั แปร[จานวนสมาชิก]; ตวั อย่างint x[5]; การเกบ็ ข้อมลู x[0] x[1] x[2] x[3] x[4]
{ int i; int x[5]; for(i=0;i<5;i++) { x[i] = i+1; } for(i=0;i<5;i++) { printf(“x[%d]=%d\\n”,i,x[i]); } }
แบบฝึ กหดั
แบบฝึ กหดั
int i,max=0; int x[10]; printf(\"Max of 10 number.\\n\"); for(i=0;i<10;i++) { printf(\"Enter number %d : \",i+1); scanf(\"%d\",&x[i]); if(x[i]>=max) max=x[i]; } printf(\"Max is %d\",max);
แบบฝึ กหดั
แบบฝึ กหดั
การกาหนดค่าให้กับอาร์เรย์ int year[5]; year[0] year[1] year[2] year[3] year[4] 2001 2016 1999 2000 1991 year[0] = 2001; year[1] = 2016; year[2] = 1999; year[3] = 2000; year[4] = 1991;
การกาหนดค่าให้กับอาร์เรย์ int year[5]; year[0] year[1] year[2] year[3] year[4] 2001 2016 0 0 0 year[0] = 2001; year[1] = 2016;
การกาหนดค่าให้กับอาร์เรย์ int a[5] = {12,7,0,5,-10} a[0]=12 a[1]=7 a[2]=0 a[3]=5 a[4]=-10 char codes[6] = {‘s’, ‘a’, ‘m’, ‘p’, ‘l’, ‘e’}; double width[7] = {10.96, 6.43, 2.58, 0.86, 5.89, 7.56, 8.22}; float temp[4] = {98.6, 97.2, 99.0 , 101.5}; int gallons[20] = { 19, 16, 14, 19, 20, 18, 12, 10, 22, 15, 18, 17, 16, 24, 23, 19, 15, 18, 21, 5 };
การกาหนดค่าให้กับอาร์เรย์ int year[5], i; year[0] year[1] year[2] year[3] year[4] for (i=0;i<=4;i++){ printf(“Enter year %d”,i); scanf(“%d”,&year[i]); }
การแสดงค่าจากอาร์เรย์ fionrt(iy=e0a;pir<[r5i=2Yn]4e0=tfa;{(0ir2+“[%010+] 0)d1”,,y22Ye0e0aa11rr6[[16i,]]1);991Y9e9,2a9r0[290]0,192Y9e01a0r}[;30] Year[4] 1991 printf(\"%d\",year[0]); 2001 printf(\"%d\",year[1]); 2016 printf(\"%d\",year[2]); 1999 printf(\"%d\",year[3]); 2000 printf(\"%d\",year[4]); 1991
int num[4],i; Enter num[0]: 10 for(i=0;i<4;i++) Enter num[1]: 20 { Enter num[2]: 30 Enter num[3]: 40 printf(“Enter num[%d]: “,i); scanf(“%d”,&num[i]); } num[0] = 20 for(i=0;i<4;i++) num[1] = 40 num[i] = 2*num[i]; num[2] = 60 for(i=0;i<4;i++) num[3] = 80 printf(“num[%d] = %d\\n”,i,num[i]); }
int num[5];int i,x,tmp; printf(\"Input number for sort\\n\"); for(i=0;i<5;i++){ printf(\"Enter number[%d] = \",i); scanf(\"%d\",&num[i]); } for(i=1;i<5;i++){ for(x=0;x<5;x++){ if(num[i]>num[x]){ tmp=num[i]; num[i]=num[x]; num[x]=tmp; } } } printf(\"Sort number\\n\"); for(i=0;i<5;i++) printf(\"%3d\\n\",num[i]);
อาร์เรย์หลายมติ ิ อาร์เรย์ 1 มติ ิ (one-dimensional arrays) หน่ึงมติ ิ คือ ใช้ดรรชนี (index หรือ subscript) เพยี งตวั เดียว อาเรย์หลายมติ ิ (Multidimensional arrays) สองมติ ิ ใช้ดรรชนีหลายตวั หากใช้ดรรชนี 2 ตวั จะเรียกวา่ อาเรย์ 2 มติ ิ หากใช้ดรรชนี 3 ตวั สามมติ ิ จะเรียกว่า อาเรย์ 3 มิติ
อารเ์ รย์แบบ 2 มิติ คือ ตวั แปรท่ีประกอบด้วยตวั เลข 2 ตวั เพื่อใช้ในกำร แสดงแถวและคอลัมน์ และสำมำรถเก็บข้ อมูลได้ตำม จำนวนตวั เลขในแถวและคอลมั น์คณู กัน กำรจะใช้งำนตัว แปรอำร์เรย์จะต้องมีกำรประกำศคำ่ เสยี ก่อน
การใช้คาส่ัง for ในการเข้าถงึ อาร์เรย์ 2 มิติ ◼ ใช้ลปู for 2 ชนั้ โดยลปู ชนั้ นอกวนรอบตามจานวนแถว ส่วนลปู ชนั้ ในวนรอบตามจานวนหลกั ◼ ต้องมีตวั นบั 2 ตวั คอื ตวั นบั แถวและตวั นบั หลกั int i,j,x[2][3]; 012 for(i=0;i<2;i++) 00 1 2 11 2 3 for(j=0;j<3;j++) printf… x[i][j] = i+j; scanf…
แบบฝึ กหดั ◼ ให้เขียนโปรแกรมสาหรับรับเมตริกซ์ของเลขจานวนเตม็ ขนาด 2x2 จานวน 2 เมตริกซ์ จากนนั้ แสดงผลบวกของเมตริกซ์ทงั้ สอง Enter matrix A(2x2): 2 -1 15 9 Enter matrix B(2x2): 10 8 3 -7 Matrix A+B: 12 7 18 2
แบบฝึ กหดั ◼ ให้เขียนโปรแกรมสาหรับรับเมตริกซ์จากผ้ใู ช้ 1 เมตริกซ์ (ให้ชื่อวา่ เมตริกซ์ A) โดยผ้ใู ช้สามารถกาหนดจานวนหลกั และแถวของเมตริกซ์ได้ จากนนั้ ให้ แสดงผลลพั ธ์ของเมตริกซ์ 2A Enter number of rows: 2 Enter number of columns: 3 Enter matrix A: 435 297 Matrix 2A: 8 6 10 4 18 14
Search
Read the Text Version
- 1 - 22
Pages: