c語言陣列專題知識點易錯點總結及做題感悟
一.知識點總結
1.一維陣列的定義和初始化.
注: ① c語言陣列的下標都是從0開始的;
②在定義陣列時不能使用變數定義陣列的大小,如果前面沒有對n進行巨集定義 #define n 5
則a[n]則不對,因為n不是乙個確定的數;
③在對陣列定義時,不要讓陣列下標越界訪問
2.二維陣列的定義和初始化
注:①定義: 型別 陣列名[第一維度][第二維度]
②初始化: 例 int a[3][4]=,,}
3.排序和查詢
例如:按交換法將陣列a的元素值按從高到低排序(氣泡排序)
for(int i=1;i<=n-1;i++)
}例如:按折半查詢法查詢值為x的陣列元素,若找到則返回x在陣列中的下標位置,否則返回-1(二分查詢)
int binsearch (long num,long x,int n) (binsearch()為函式定義)
}2.二維陣列
①有些問題需要找出規律再用**表現出來,例如:矩陣轉置,影象旋轉,影象模糊處理
3.字元型別和字元陣列
①統計數字字元個數
char ch[256];
gets(ch); //用gets()讀入字元陣列
l=strlen(ch); //計算字串的長度,需呼叫cstring庫
4.字串與string類
①輸入字串 getline(cin,字串變數) getline函式預設是碰到換行符才結束,可以讀進空格
②判斷乙個字母為大寫(或小寫)字母,可用邏輯表示式"s[i]>='a&&s[i]<=『z』" (像單詞替換的問題)
③string型別的其他常用操作
s.insert(pos,s2) 在s下標為pos的元素前插入string型別s2
s.substr(pos,n) 返回從s下標pos起的n個字元,型別為string
s.erase(pos,n) 刪除s下標pos起的n個字元
s.replace(pos,n,s2) 將s下標pos起的n個字元替換為s2的字元
s.find(s2,pos) 在s下標pos起查詢s2第一次出現的位置
④sscanf和sprintf語句(將字串與數字巧妙轉換)
sscanf(s,"%d",&n); 將字串s轉換成數字n
sprintf(s,"%d",n); 將整數n轉換成字串s
例如:char s1[10]=「1,2,3」,s2=「4,5,6」;
int a,b;
sscanf(s1,"%d",&a);
sscanf(s2,"%d",&b);
couts2
if(a.compare(b)=0) 即s1=s2
sort函式從小到大排序
#include
for(int i=0;i>a[i];
sort a[a,a+n];
總結:陣列這一章的知識可以說為我們提供了一種解決問題的新思路,尤其是字元陣列和對字串的操作更要認真把握,為後面的函式及其他演算法打下基礎。
C語言陣列知識點
指標陣列 陣列指標 指標陣列 指標陣列是陣列,是乙個存放指標的陣列。例 int arr 5 陣列指標 是有能力指向陣列的指標。例 int p 5 p 先和 結合,說明p是乙個指標變數,然後指標指向的是乙個大小為10個整型的陣列。所以p是乙個指標,指向乙個陣列,叫陣列指標。分辨陣列or指標 由離其最近...
C語言知識點總結
有段事件沒有寫c程式了,有些地方有些生疏了。這兩天事情比較少,準備再系統的看一邊c的基礎知識。這裡再總結一下平時沒太注意的知識要點。1 c語言的語句塊在c語言中,任何允許出現語句的地方既可以是由 號結尾的一條語句,也可以是由 括起來的若干條語句或宣告組成的語句塊 statement block 語句...
C語言知識點總結
以下內容為本人對c語言中經常忘記但是又重要的知識點的總結。i,i 在使用i之前,先使i的值加 減 1 i i 在使用i之後,使i的值加 減 1 continue 結束本次迴圈語句 break 中止執行switch或迴圈語句 if語句常用的三種形式 while迴圈,for迴圈,do while迴圈都可...