你kin你擦
阿新 • • 發佈:2020-12-13
這個作業屬於哪個班級 | C語言--網路2011/2012 |
---|---|
這個作業的地址 | C部落格作業04--陣列 |
這個作業的目標 | 學習陣列相關內容 |
姓名 | 楊振鵬 |
1.本章學習總結
1.1 學習內容總結
- 查詢資料
1.順序查詢:遍歷陣列,逐個判斷
2.二分查詢:必須為正序的陣列,每次取一箇中間值判斷所需值與其大小,在左右兩個區間內確定一個再次去中間值。。。
#define M 10 #include <stdio.h> int main(){ int a[M]={-12,0,6,16,23,56,80,100,110,115}; int low,mid,high,b,found; low=0; high=M-1; scanf("%d",&b); while(low <= high){ mid=(low+high)/2; if(b == a[mid]){ found =1; break; }else if(b>a[mid]){ low=mid+1; }else{ high=mid-1; } } if(found ==1){ printf("The index of %d is %d",b,mid); }else{ printf("There is not %d",b); } return 0; }
- 插入資料
需要插入位置之後的所有元素後移
輸入資料
for(遍歷陣列)
if(a[i]==date)
index=i找到插入位置
for(i=index;i<n;i++)將該位置以後的資料往後移一位
end for
輸出更改後的陣列
- 刪除資料
1.資料左移:
for (j=1; j <= k; j++)
{
scanf("%d", &x);//輸入需要刪除元素的位置
for (i = x-1; i < n-1 ; i++)
{
a[i] = a[i + 1];
}
}
2.再定義一個數組:
int a[n]
int b[n-1]
scanf("%d",&index);//輸入需要刪除元素的位置
for(i=0;i<n;i++)
{
if(i<index)
{
b[i]=a[i];
}
else
{
b[i]=a[i+1];
}
}
- 排序方法
1.冒泡法:相鄰的數兩兩比較,前者比後者大就互換位置,最大換到最後,次大換到倒數第二。。。。。
2.選擇法:遍歷陣列每次找本次最大的元素的下標,與最後一個元素互換,第二次與倒數第二個換。。。。。 - 列舉:能約束元素的值
int a[5]={0,1,2,3,4};
沒用過
- 雜湊陣列
統計元素重複數量
1~9:
int n;
int a[10]={0};
for(元素總數)
{
scanf("%d",&n);
a[n]++;
}
A~Z
char ch;
int n;
int a[26]={0};
for(元素總數)
{
scanf("%c",&ch);
n=ch-'A';
a[n]++;
}
- 字元陣列、字串特點及程式設計注意事項
輸入:
scanf("%s",&a);
上述結尾為'\0';
fgets(a,10,stdin);
上述結尾為'\n''\0',不夠則沒有'\n'
2.PTA實驗作業
2.1 7-1 將陣列中的數逆序存放
- 2.1.1虛擬碼
輸入資料
for 0 to n-1
從陣列最後一個元素開始輸入
end for
正向輸出陣列元素
- 2.1.2程式碼截圖
- 2.1.3同學程式碼
這個同學的程式碼是先將陣列正序輸入,然後第一個元素跟最後一個交換。第二個跟倒數第二交換,中規中矩。
我的有點投機取巧,不過很快啊
2.2 7-15 閱覽室
- 2.2.1虛擬碼
輸入資料
for 0 to n-1\\統計的天數
for(輸入一天內的借還情況)
if 書號為0 break;
end for
for(遍歷陣列)
if (出現'S')
for (遍歷接下來的陣列元素)
if(同書號+E)計入時間,次數+1
if(同書號+S)S改為E
end for
end for
計算平均閱讀時間
輸出
end for
- 2.2.2程式碼截圖
- 2.2.3超星
前面和超星差不多,到計時那裡不太一樣,我巧妙的把同書號S後的S改為E,解決了問題,超星上的遇到沒換後的S選擇跳出迴圈,再尋找S
2.3 7-6 切分表示式——寫個tokenizer吧
- 2.3.1虛擬碼
輸入資料
for(遍歷陣列)
if(第一個字元為-或+)直接輸出
else if(出現數字)
for(尋找之後是否為數字或小數點)若是接著輸出,最後換行
else if(出現不為第一個元素的-號時,且前面元素為(,後面的元素為數字)輸出不換行
else 輸出換行
end for
- 2.3.2程式碼截圖
- 2.3.3超星
差不多差不多