您好,登錄后才能下訂單哦!
一 使用數組的目的:可以讓多個數據使用一個變量,用不同的下標加以區分;
數組的需要先定義后使用,int a[10];//定義了一個長度為10,存放int型數據的數組;以下定義是錯誤的:
int a[a+1];//不能有表達式
int b[n];//不能有字母
int n=10;
int a[n];//錯誤,有字母
總結:[ ]中的值只能是正整數
二 數組的引用:通過下標引用
int a[10];這十個元素分門別為a[0]至a[9];引用時注意不要下標越界;這十個數在內存中連續存放
三 數組的賦值:數組的賦值需要在未定義完時候進行,如 int a[10]={1,2,4};不可以寫成 :
int a[10];
a[10]={1,2};
int a[10]={1,2};//不完全賦值,a[0]到a[1]值分別為1,2,其余均為0(注意不是垃圾數據);
定義數組不聲明數組個數的時候必須賦初值,數組個數取決于初值個數;
int a[]={1,1,1};//數組個數為3
四 數組的遍歷使用for語句;
數據在數組中存儲的三個特點:
1.從0開始;
2.連續存放;
3.上述兩個特點必須動態滿足(不論刪除數據還是增加數據);
五 對于數組的輸入,插入,刪除,求均值,排序的講解:
編寫程序,對若干名同學成績進行處理,包括輸入成績,刪除成績,插入成績,求平均值,按升序排序:
輸入成績:因為輸入學生不定,所以不能提前預知輸入的個數,所以我們規定當輸入為 -1 時候結束輸入
程序代碼:
printf("請輸入數據(當輸入-1時候結束):\n");
scanf("%d", &num);
for(i=0;i!=num;i++)
{
score[i]=num;
printf("請輸入數據(當輸入-1時候結束):\n");
scanf("%d", &num);
}
插入成績:插入成績分兩步完成 第一步是查找 第二步插入(找到原有成績,并將新成績插到原有成績之前)
1.查找的第一步是找到原有成績,第二步是找到其下標i,第三步是輸入要插入的成績
2.插入采用前插法,具體查找的過程:
已知:插入成績 newScore
數組的有效元素:count
插入點下標: j
插入成績的 偽代碼:
for(i=count;i>j;i--)
{
score[i]=score[i-1];
}
score[i]=newScore;
count;
將倒數第二賦值給倒數第一,將倒數第三賦值給倒數第二,找到將原有插入點下標的數據賦值給后一位,留下的空位由插入點數據補充;
3.查找的目的是找到舊成績的下標
偽代碼:
for(i=0;i<count&&score[i]!=oldScore;i++)
;
if(i>count)
printf("插入錯誤");
else
;//真正插入的代碼
刪除成績:
1.輸入要刪除的成績
2.找到這個成績(從頭依次查找)
3.刪除這個成績(將之后的成績依次提前一位)
偽代碼如下
printf("請輸入刪除的成績:\n");
scanf("%d" , &delescore);
for(i = 0; i<count&&score[i]! = delescore;i++)
;
if(i>count)
printf("未有要刪除的成績\n");
else
{
for(;i<count-1;i++)
{
score[i]=score[i+1];
}
}
求和:相加除以人數即可:
按升序排序:將一堆混亂的數據從新有小到大排序
for(i = 0;i < count ;i++)//控制放置最小的數字
for(j = i+1;j < count ;j++)
{
if(score[i] >score[j])//將小的放前面
{
num = score[j];
score[j] =score[i];
score[i] = num;
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。