陣列 01010 10101 01010 10101 01010 10101.

Slides:



Advertisements
Similar presentations
親愛的老師您好 感謝您選用本書作為授課教材,博碩文化準備本書精選簡報檔,特別摘錄重點提供給您授課專用。 說明: 博碩文化:
Advertisements

“八皇后”问题 崔萌萌 吕金华.
Loops.
C/C++基礎程式設計班 陣列 (Array)
第九章 系 统 安 全 性 9.1 结构体 9.2 结构体型数组  9.3 结构体型指针 9.4 内存的动态分配 9.5 共用体
C语言程序设计 课程 第5章 数组 主讲:李祥 博士、副教授 单位:软件学院软件工程系.
第十一章 結構.
Visual C++ introduction
Do.For.While.正三角.倒正三角.倒九九乘法表
選擇排序法 通訊一甲 B 楊穎穆.
C的發展史 C程式初體驗 C程式設計基本注意事項 上機實習課程
Chen Yi Fen The C Language Chen Yi Fen
適用於多選一 可減少if 與 else配對混淆的錯誤.
If … else 選擇結構 P27.
Chap 9 结构 9.1 构建手机通讯录 9.2 结构变量 9.3 结构数组 9.4 结构指针.
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
Introduction to the C Programming Language
Introduction to the C Programming Language
STRUCTURE 授課:ANT 日期:2010/5/12.
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
计算概论 第十八讲 C语言高级编程 结构与习题课 北京大学信息学院.
C語言簡介 日期 : 2018/12/2.
程式撰寫流程.
Chapter 7 指標.
Introduction to the C Programming Language
算法的基本概念.
Java 程式設計 講師:FrankLin.
Chap3 Linked List 鏈結串列.
第13章 结构体的应用 13.1 了解由用户构造的数据类型 13.2 结构体类型说明及结构体变量 13.3 结构体数组
計數式重複敘述 for 迴圈 P
程式設計實習課(四) ----C 函數運用----
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
第七章 函数及变量存贮类型 7.1 函数基础与C程序结构 7.2 函数的定义和声明 7.3 函数的调用 7.4 函数的嵌套与递归
第0章作业: 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。
陣列(Array).
1.2 C语言程序的结构与书写规则 一、 C语言程序的总体结构
C语言程序设计 教案 崔武子制作
指標
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
Chap 5 函数 5.1 计算圆柱体积 5.2 数字金字塔 5.3 复数运算.
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
向量 (vector) 就是典型的一維陣列,而更高維的矩陣,例如矩陣 (matrix) 和張量 (tensor) 則分別是二維和三維的陣列。
輸出與輸入(I/O).
C程序设计.
C语言程序设计 李祥 QQ:
C qsort.
第一章 C语言概述 目录 什么是语言、程序 C语言的历史与发展 C语言的书写形式与程序结构 运行C语言的步骤与方法
第二章 类型、对象、运算符和表达式.
Introduction to the C Programming Language
第三章 基本的輸出與輸入函數 (Basic Output & Input Function)
陣列與結構.
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
Introduction to the C Programming Language
第七章  数 组.
第十二章 位运算.
程式設計--Quick Sort 通訊一甲 B 楊穎穆.
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
Programming & Language Telling the computer what to do
Chapter 6 函數.
C/C++基礎程式設計班 陣列 講師:林業峻 CSIE, NTU 3/14, 2015.
Array(陣列) Anny
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
Introduction to the C Programming Language
Introduction to the C Programming Language
C语言基础学习 从外行到入门.
隨機函數.
方法(Method) 函數.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

陣列 01010 10101 01010 10101 01010 10101

陣列 一種結構性的資料儲存方式,同一陣列裡的元素,其資料型態相同 陣列元素的記憶體位置被分配為相鄰 用一個變數名來代表整體的資料 把陣列想成一排置物櫃,陣列裡的數字代表櫃子的數量,例如:hey[20] C語言的陣列索引(index)從0的開始 x[2]是第三個陣列x的值,x[0],x[1],x[2],x[3]…

陣列宣告 陣列分為一維陣列、二維陣列、多維陣列 資料型態 陣列名稱[陣列大小]; 資料型態 陣列名稱[陣列大小][陣列大小]; 資料型態 陣列名稱[陣列大小]; int x[5]; 資料型態 陣列名稱[陣列大小][陣列大小]; float y[2][3]; 宣告陣列時,可一併給初始值: int x[5] = {1,2,3,4,5}; int z[3][4] = {1,2,3,4,5,6,7,8,0,1,2,3}; X[0] X[1] X[2] X[3] X[4] Z[0][0],Z[0][1],Z[0][2],Z[0][3] Z[1][0],Z[1][1],Z[1][2],Z[1][3]

陣列宣告&使用 int age[4]; float b=7.0; char x[4]; scanf(“%d%d%d%d”,&age[0],&age[3],…); scanf(“%s”,x); … age[1] age[2] age[3] age[0] b 3A14 7.0 &b 8 1 9 5 ? age 1A00 1A02 1A04 1A06 age 1,5,9,8 1,5,9,8 Love L o v e ? ? ? ? x X[0] 2A11 X[1] 2A12 X[2] 2A13 X[3] 2A14 X[0] X[1] X[2] X[3]

輸入3個實數,並求其平均值 #include<stdio.h> void main() { float num[3], sum=0; int i; for (i = 0; i < 3; i++) { printf("Input a number to num[%d] : ", i); scanf("%f", &num[i]); sum = sum + num[i]; } printf("The average is %f\n", sum / i);

進階

陣列空間分配方式 C語言分配一塊連續的記憶體給一個陣列宣告 int x[10]; int x[5][10]; int x[4][5][6]; 分配10*sizeof(int)個bytes int x[5][10]; 分配5*10*sizeof(int)個bytes int x[4][5][6]; 分配4*5*6*sizeof(int)個bytes void fun(int x[]) { } 沒有分配陣列空間,相當於int *x; C語言呼叫函數傳遞參數時,無法傳遞整個陣列(陣列可能大得不得了),而是傳遞陣列的開頭地址,也就是指標 在參數宣告時,指標和沒有宣告大小的陣列是可以混用

陣列空間分配方式 C語言是使用row major的方式來處理多維到一維的對應即右邊的索引先變化 int x[2][3]; 六個陣列元素在記憶體中的排列順序為x[0][0],x[0][1],x[0][2],x[1][0],x[1][1],x[1][2]

Pascal Triangle 下圖為n=6的情況 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 規則是最外層是1, 裡面每個數字都是上方兩個數字的和 Pascal Triangle是(x + y)n每個項次的係數

Pascal Triangle提示: 如果把上圖左邊的空白拿掉則會變成下面的圖形, 除了最左邊和最右邊的數字是1以外,裡面的每一個數字都是其正上方和左上方數字的和.你可以用陣列來計算和儲存這些數字,然後再以上圖的格式印出來 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1

Pascal Triangle提示: 回答下面問題,程式就寫完了 如果要用*號印出這種形狀的三角形,該怎麼寫? (雙層迴圈) 最左邊和最右邊如何表達? 內部每一個數字都是正上方和左上方數字,請問正上方和左上方這兩個位置的陣列索引如何表達? 每一個row前面要加上幾個空白才能讓圖形看起來是正三角形?

Pascal Triangle #include <stdio.h> #include <stdlib.h> int main() { int n, i, j; unsigned tri[51][51]; printf("Please input size of Pascal triangle(0 to 50): "); scanf("%d", &n); if (n < 0 || n > 50) { printf("I can only print Pascal triangle between 0 and 50.\n"); return; } for (i = 0; i <= n; i++) { for (j = 0; j < n - i; j++) { printf(" "); for (j = 0; j <= i; j++) { printf(" %5u",tri[i][j] = (j==0 || j==i) ? 1 : tri[i-1][j-1]+tri[i-1][j]); printf("\n"); system(“pause”);