陣列初始化:
定義一個陣列,不完全初始化,那麼未初始化的值都為0
定義一個陣列,不初始化,裡面全都是垃圾值
讓陣列全部初始化0 可以 int a[500] = ;
陣列初始化錯誤:
int a[5] ;
b = //這樣嚴重不可以,因為b是一個地址
int b[5]= ;//這樣也不可以,不能中途出現未初始化的
int a[10];
printf("%p %p %p", &a[0] , a , &a) //這三個值一樣
printf("%p %p %p", &a[0]+1, a +1, &a+1) //不一樣
a+1 代表第一個元素地址+1 相當於加了1個型別長度的位元組 --------> 所以才有了a[1]
&a代表整個陣列,+1 相當於加了10個型別長度的位元組
可變長陣列:
c89不支援可變陣列,c99支援可變陣列
c89不支援for(int i=0;i<10;i++) c99支援這樣寫
定義陣列的時候,必須要知道陣列的長度 int a ;//嚴重錯誤
定義陣列長度的時候,最好使用巨集
#define n 5
int a[n];
獲取陣列的長度:
int a = ;
int len = sizeof(a)/sizeof(int); // 或者
sizeof(a)/sizeof(a[0]);
printf("%d\n",len);
陣列間的賦值:
int a[5] = ;
int b[5];
b = a;//嚴重錯誤,這是地址間的賦值,兩個陣列直接的賦值應該for,
隨機數:
srand(1);//生成隨機數種子
rand();//根據種子來產生隨機數
在 stdlib.h
選擇排序:
void
select_sort
(inta,
intn
)
temp =a
[i];
a[i
]=a[
min];
a
[min]=
temp
;
}
}
}
維基百科的選擇排序
void
selection_sort
(int*a
,int
len)
}
}
氣泡排序:
int main()
;int i;
printf("氣泡排序前:\n");
for (i = 0; i < 5;i++)
printf("\n");
int m, n,temp;for (m = 0; m < 5 - 1;m++)
}}
printf("氣泡排序後:\n");}for (i = 0; i < 5; i++)
printf("\n");
return 0;
putchar :
putchar('\n');//這裡是單引號,如果用雙引號,錯誤 含義是一次打出一個字元
printf("\n"); //這裡是雙引號,如果用單引號,錯誤
getchar:
//getchar 只能接收一個字元
char ch;
char tmp;
while (1)
else if (ch >= 'a' && ch <= 'z')
else if (ch >= 'a' && ch <= 'z')
else
}gets :
gets(a) //a要是個指標 空格也能接收
puts:
int main()
來自為知筆記(wiz)
陣列排序 選擇排序
原理 從0索引開始,依次和後面元素比較,小的往前放,第一次完畢,最小值出現在了最小索引處。依次迴圈。package cn.itcast 01 public class arraysort selectsort int arr int arr system.out.println 排序前 printa...
陣列排序(2) 選擇排序
一 選擇排序 表現最穩定的排序演算法之一,因為無論什麼資料進去都是o n2 的時間複雜度,所以用到它的時候,資料規模越小越好。唯一的好處可能就是不佔用額外的記憶體空間了吧。選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理 首先在未排序序列中找到最小 大 元素,存放到排...
陣列排序之選擇排序
package cn.itcast 02 陣列排序之選擇排序 從0索引開始,依次和後面元素比較,小的往前放,第一次完畢,最小值出現在了最小索引處 public class arraydemo system.out.println 排序前 printarray arr 第一次 int x 0 for ...