在日常的學(xué)習(xí)、工作、生活中,肯定對各類范文都很熟悉吧。那么我們該如何寫一篇較為完美的范文呢?下面是小編為大家收集的優(yōu)秀范文,供大家參考借鑒,希望可以幫助到有需要的朋友。
c語言多組數(shù)據(jù)篇一
學(xué) 科:計(jì)算機(jī)科學(xué)與技術(shù)
課 程:c語言程序設(shè)計(jì)
課 題:一維數(shù)組
課 時(shí):2
1、掌握一維數(shù)組的定義和引用
2、掌握一維數(shù)組的初始化方法
3、了解與一維數(shù)組有關(guān)的應(yīng)用編程方法
一維數(shù)組的定義和引用、初始化方法
與一維數(shù)組有關(guān)的應(yīng)用編程方法
教學(xué)方法:舉例法,引導(dǎo)法
教學(xué)步驟: 1、通過一個(gè)例子提出問題來引出本節(jié)課的知識點(diǎn)
2、講授一維數(shù)組的定義和引用、初始化方法
3、示例訓(xùn)練
4、進(jìn)行本節(jié)課的總結(jié)及作業(yè)布置
教 具:黑板 計(jì)算機(jī) 投影儀
提問:保存一個(gè)班50位同學(xué)的一門功課的成績,并且找出最高分和最低分,應(yīng)如何實(shí)現(xiàn)?
解題思路:定義50個(gè)變量,從鍵盤中輸入值,然后再相互比較。處理起來很復(fù)雜,是否有更簡便的方法?引出本節(jié)課的知識點(diǎn)-----數(shù)組。
1、數(shù)組概述:
·數(shù)組:是數(shù)目固定,類型相同的若干個(gè)變量的有序集合,用數(shù)組名標(biāo)識。
序:是數(shù)組元素之間的位置關(guān)系,不是元素值的大小順序。
數(shù)組名:是用于區(qū)別其它數(shù)組及變量的。
·數(shù)組元素:集合中的變量,屬同一數(shù)據(jù)類型,用數(shù)組名和下標(biāo)確定。
下標(biāo):是數(shù)組元素在數(shù)組中的位置。
·數(shù)組的維數(shù):數(shù)組名后所跟下標(biāo)的個(gè)數(shù)。
2、一維數(shù)組的定義
一維數(shù)組是指由一個(gè)下標(biāo)數(shù)組元素組成的數(shù)組。其定義形式為:
存儲類型 數(shù)據(jù)類型 數(shù)組名[常量表達(dá)式]
例如:static int score[50];
它表示定義了一個(gè)名為score的數(shù)組,該數(shù)組有50個(gè)元素,其存儲類型為靜態(tài)型,數(shù)據(jù)類型為整型。
說明:
(1)存儲類型為任選項(xiàng),可以是auto、static、extern存儲類型,但是沒有register型。
(2)數(shù)據(jù)類型是用來說明數(shù)組元素的類型:int , char , float。
(3)數(shù)組名的命名應(yīng)遵守標(biāo)識符的命名規(guī)則,但是不能與其他變量同名。
(4)數(shù)組名后是用方括號[ ]括起來的常量表達(dá)式。常量表達(dá)式表示的是數(shù)組元素的個(gè)數(shù),即數(shù)組的長度。在上例中定義了數(shù)組score [50],第一個(gè)元素為score [0],最后一個(gè)為score [49]。
(5)常量表達(dá)式中可以包括常量和符號常量,不能包含變量,因?yàn)閏語言規(guī)定不允許對數(shù)組的大小作動(dòng)態(tài)定義。
(6)允許在同一個(gè)類型說明中,說明多個(gè)數(shù)組和多個(gè)變量,彼此間以逗號相隔。 例如:int a,b,k1[10],k2[20]; //定義了兩個(gè)一維數(shù)組、兩個(gè)整型變量
判斷下面的定義是否合法:
int b, b[5]; //不合法,數(shù)組名不能與變量名同名
#define size 10
int b[size]; //合法,size已經(jīng)在宏定義中說明,在程序中作為符號常量
int a(6); //不合法,數(shù)組名后不能使用(),只能用[]
int n=5;
int a[n]; //不合法,不能用變量定義數(shù)組元素的個(gè)數(shù)
int a[n+2]; //不合法,不能用變量表達(dá)式定義數(shù)組元素的'個(gè)數(shù)
一維數(shù)組的存儲結(jié)構(gòu):c語言在編譯時(shí)給數(shù)組分配一段連續(xù)的內(nèi)存空間。內(nèi)存字節(jié)數(shù)=數(shù)組元素個(gè)數(shù)*sizeof(元素?cái)?shù)據(jù)類型)
數(shù)組元素按下標(biāo)遞增的次序連續(xù)存放。數(shù)組名是數(shù)組所占內(nèi)存區(qū)域的首地址,即數(shù)組第一個(gè)元素存放的地址。
例 int a[5];
內(nèi)存地址
占用字節(jié)數(shù)為:5*sizeof(int)=5*2=10
3、一維數(shù)組元素的引用
數(shù)組元素是組成數(shù)組的基本單元。數(shù)組元素用數(shù)組名和下標(biāo)確定。下標(biāo)表示了元素在數(shù)組中的順序號,c語言規(guī)定:數(shù)組必須先定義,后使用。一維數(shù)組的引用形式為:
數(shù)組名[下標(biāo)]
其中下標(biāo)可以是整型常量、整型變量或整型表達(dá)式。例如有定義:
int t,a[10],i=2;
則以下都是正確的表達(dá)式:
t=a [6];
a[0]= a[i]+a[i+1];
引用說明:
(1)必須像使用變量那樣,先定義,再使用,如以下操作是錯(cuò)誤的:
int x=a[2];
int a[10];
(2)下標(biāo)的最小值為0,最大值是數(shù)組大小減1。在前例中定義了數(shù)組score [50],使用的時(shí)候不能使用 score [50], 否則產(chǎn)生數(shù)組越界。c語言對數(shù)組不作越界檢查,使用時(shí)要注意!
(3)在c語言中只能對數(shù)組元素進(jìn)行操作,不能一次對整個(gè)數(shù)組進(jìn)行操作。例如要輸出有10個(gè)元素的數(shù)組,則必須使用循環(huán)語句逐個(gè)輸出各下標(biāo)變量:
for(i=0; i<10; i++)
printf("%d",a[i]);
而不能用一個(gè)語句輸出整個(gè)數(shù)組。
下面的寫法是錯(cuò)誤的:
printf("%d",a);
例:輸出5個(gè)學(xué)生的成績
#include
void main ( )
{
int i, score[5]={82,79,65,91,86};
for (i=0;i<5;i++)
printf (" %d ",score[i]);
}
4、一維數(shù)組的初始化
數(shù)組的初始化就是給數(shù)組元素賦初始值。主要有兩種方法:
1.數(shù)組定義時(shí)初始化:就是在定義數(shù)組時(shí)給數(shù)組元素賦初值。其初始化的一般格式為:
數(shù)據(jù)類型 數(shù)組名[數(shù)組元素個(gè)數(shù)] ={值1,值2,… ,值n};
(1)對數(shù)組全部元素賦初值
例如 int a[5]={2,4,6,8,10};
其作用是在定義數(shù)組的同時(shí)將常量2、4、6、8、10分別置于數(shù)組元素a[0]、a[1]、a[2]、a[3]、a[4]中。
(2)對數(shù)組部分元素賦初值,其它數(shù)組元素自動(dòng)賦以0值
例如:
int a[4]={1,2 };執(zhí)行后各元素的初值為a [0]=1,a [1]=2,a [2]=0,a [3]=0
(3)全部元素均初始化為0,可寫成:
int a[10]={0,0,0,0,0,0,0,0,0,0};或int a[10]={0};
不能寫成 int a[10]={0*10};
說明:
(1)數(shù)組元素的值可以是數(shù)值型、字符常量或字符串。
(2)數(shù)組元素的初值必須依次放在一對大括號{ }內(nèi),各值之間用逗號隔開。
(3)在進(jìn)行數(shù)組的初始化時(shí),{ }中值的個(gè)數(shù)不能超過數(shù)組元素的個(gè)數(shù)。
例如:int a[5]={1,2,3,4,5,6};是一種錯(cuò)誤的數(shù)組初始化方式,所賦初值多于定
義數(shù)組的元素個(gè)數(shù)。
(4)在給數(shù)組所有元素賦初值時(shí),可以不指定數(shù)組長度。例如:
int a[ ]={1,2,3,4,5};則系統(tǒng)會自動(dòng)定義數(shù)組a的長度為5。
在定義時(shí)賦初值是一種簡單而行之有效的方法,它適用于長度較小的數(shù)組或?qū)﹂L度較大的數(shù)組部分元素賦值,而且可對每個(gè)數(shù)組元素賦不同的值。
2.在程序中初始化:主要使用循環(huán)語句進(jìn)行逐一賦值
例如:int i,score[50];
for (i=0;i<50;i++)
score [i]=0;
這種方法是在編程中普遍使用的一種方法,它適用于對某數(shù)組元素進(jìn)行有規(guī)律的賦值或接受用戶通過鍵盤輸入對數(shù)組元素的賦值。
1.以引例為例,從鍵盤輸入10個(gè)學(xué)生一門課的成績,找出最高分和最低分并輸出。 步驟:
(1) 輸入: 用for循環(huán)輸入10個(gè)學(xué)生的成績
(2) 處理:
(a) 先令max=min=score[0]
(b) 依次用score [i]和max,min比較(循環(huán))
若max< score [i],令max= score [i]
若min> score [i],令min= score [i]
(3) 輸出: max和min
程序如下:
#include
void main()
{
int i;
float score [10],max,min;
printf("enter 10 score s: ");
for(i=0;i<10;i++) //輸入10個(gè)浮點(diǎn)型的學(xué)生的成績
scanf("%f",& score [i]);
max=min= score [0];
for(i=1;i<10;i++) //循環(huán)比較,找出最高分和最低分
{
if(max< score [i]) max= score [i];
if(min> score [i]) min= score [i];
}
printf("max score is %f ",max); //輸出最高分
printf("min score is %f ",min); //輸出最低分
}
2.以引例為例,從鍵盤輸入10個(gè)學(xué)生一門課的成績,用冒泡法從低到高排序并輸出。 分析:冒泡排序法的基本思想是將相鄰兩個(gè)數(shù)進(jìn)行比較,將小的調(diào)到前面。
排序過程:
(1)比較第一個(gè)數(shù)與第二個(gè)數(shù),若為逆序score [0]> score [1],則交換;然后比較score
[1]與score [2]比較;依次類推,直至score [8]與score [9]比較為止——第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個(gè)元素score [9]位置上,此次共比較9次。
(2)對前9個(gè)數(shù)進(jìn)行第二趟冒泡排序,結(jié)果使次大的數(shù)被安置在倒數(shù)第二個(gè)元素score
[8]位置,此次共比較8次。
(3)重復(fù)上述過程,共經(jīng)過9趟冒泡排序后,排序結(jié)束
程序如下:
#include
void main()
{
int i,j;
float score [10], t,max,min;
printf("enter 10 scores: ");
for(i=0;i<10;i++) //輸入10個(gè)浮點(diǎn)型學(xué)生的成績
scanf("%f",& score [i]);
printf(" ");
for(i=1;i<10;i++) //趟數(shù),共9趟
{
for(j=0;j<10-i;j++) //實(shí)現(xiàn)一次冒泡操作
if(score [j]> score [j+1]) //交換score [j]和 score [j+1]
{
t= score [j]; score [j]=score [j+1]; score [j+1]= t;
}
}
for(i=0;i<10;i++) //輸出排好序的成績
printf(" %f ", score [i]);
printf(" ");}
s("content_relate");【c語言一堆數(shù)據(jù)教案設(shè)計(jì)】相關(guān)文章:
1.c語言的數(shù)據(jù)類型介紹2.c語言以數(shù)據(jù)塊的形式讀寫文件實(shí)例代碼3.c語言for循環(huán)4.怎樣學(xué)習(xí)c++c語言編程5.assert用法(c語言)6.c語言程序介紹7.c語言設(shè)計(jì)報(bào)告8.如何學(xué)習(xí)c語言
10>10>10>10>10>10>50>5>10>