資料記憶體儲存

2021-08-19 13:26:55 字數 3371 閱讀 1576

1.調整陣列使奇數全部都位於偶數前面。

題目:輸入乙個整數陣列,實現乙個函式,來調整該陣列中數字的順序使得陣列中所有的奇數字於陣列的前半部分,所有偶數字於陣列的後半部分;

2.//楊氏矩陣

有乙個二維陣列,

陣列的每行從左到右是遞增的,每列從上到下是遞增的,

在這樣的陣列中查詢乙個數字是否存在,要求

時間複雜度小於o(n)。

#include#include#include#pragma warning(disable:4996)

//從第乙個數判斷

//若是奇數,則判斷第二個數

//若是偶數,則開始內層迴圈,從後半部分的初始位置開始,判斷是否為奇數

//若是奇數,則與前面的偶數替換,不是則++

//判斷到前半部分的最後乙個為止結束迴圈

void removeele(int arr, int len)

j++;

} }}//擴充套件,讓陣列中所有奇數字置在偶數字置前(動態陣列)

//先判斷第乙個數,若是奇數則i++;

//若是偶數,則從最後乙個數找奇數,將兩個替換

void removeele2(int arr, int len)

j--;

} i++; }}

//矩陣特點:左下角和右上角的元素的橫向和豎向兩個方向

//這兩個方向的元素乙個都大於自己,另乙個都小於自己。

//從左下角開始比較

void find(int arr[3], int size, int num)

else if (num < arr[i][j])

else

}}int main()

; int len = sizeof(arr) / sizeof(arr[0]);

removeele(arr, len);

for (int i = 0; i < len; i++)*/

/*int arr2 = ;

int size = sizeof(arr2) / sizeof(arr2[0]);

removeele2(arr2, size);

for (int i = 0; i < size; i++)*/

//楊氏矩陣

int arr3[3] = , , };

int size = sizeof(arr3) / sizeof(arr3[0]);

printf("please enter the number you want to find!\n");

int num;

scanf("%d", &num);

find(arr3, size, num);

system("pause");

return 0;

}

1、判斷大小端方式

2、幾個關於型別範圍和邊界定義的練習

3、關於資料儲存的總結

#include#include#include//判斷大小端

//方法1

void judgesmalllarge()

else

}//方法2

void judgesmalllarge2()

un;//聯合(共用體):所有的內容公用乙個(由最大的決定)空間

un.i = 1;//每個元素都可以當做是第乙個元素

//所以此時&un、&un.i、&un.p的值相同

if (un.p == 1)

else}/*

a = -1

1000 0001

1111 1110

1111 1111//儲存為ff,佔乙個位元組

輸出a = %d(有符號int)

擴充套件為int型(4位元組)

①看型別(有符號)

②擴充套件符號位,看符號位(為1)

③擴充套件24位1為:1111 1111 1111 1111 1111 1111 1111 1111(補碼)

④輸出時將其看為有符號數且符號位為1,取反加一:1000 0000 0000 0000 0000 0000 0000 0001

c也是儲存為ff(整型都是存補碼)

輸出c = %d(有符號int)

擴充套件為int型(4位元組)

①看型別(無符號)

②擴充套件24位0為:0000 0000 0000 0000 0000 0000 1111 1111(補碼)

③輸出時將其看為有符號數且符號位為0,直接輸出。

*/void ques1()

/*-128:1 1000 0000(原碼)

1 0111 1111

1 1000 0000(補碼)

char型僅有8位所以為1000 0000

128: 1000 0000

0111 1111

1000 0000(補碼)

輸出為%u(無符號int)

擴充套件為int型(4位元組)

①看型別(有符號)

②擴充套件符號位,看符號位(為1)

③擴充套件24位1為:1111 1111 1111 1111 1111 1111 1000 0000(補碼)

④輸出時將其看做無符號輸出,直接輸出。

*/void ques2()

/*i = 1;0000 0000 0000 0000 0000 0000 0000 0001

i-- ;0000 0000 0000 0000 0000 0000 0000 0000

i-- ;1111 1111 1111 1111 1111 1111 1111 1111

*/void ques3()}/*

a[0] = -1 ... a[127] = -128(1000 0000)

a[128] = -1 - 128 = -128 +(- 1) = 127

1000 0000(-128補碼)

1111 1111(-1補碼)

1 0111 1111(只存8位)結果為0111 1111(127)

a[129] = -129 - 1 (-129 = -(128 + 1))

1 1000 0001

1 0111 1110

1 0111 1111(-129補碼)

1111 1111(-1補碼)

1 0111 1110(只存8位,結果為0111 1110(126)

... a[255] = 0

*/void ques4()

printf("%d\n", strlen(a));//字串長度:遇'\0'結束計算(不計算'\0')

資料記憶體儲存

1.使用巨集實現兩個數中求較大值。include include define max x,y x y x y int main pstr sz 1 tmp int main 3.判斷乙個字串是否為另外乙個字串旋轉之後的字串。例如 給定s1 aabcd和s2 bcdaa,返回1,給定s1 abcd和...

記憶體資料儲存到檔案

include include int main void tt 定義結構體 tt temp temp.a 10 temp.b 20 strcpy temp.buf,hello 為結構體賦值 int c sizeof temp stream fopen at.dat w 開啟檔案 fwrite te...

資料在記憶體中的儲存

身為乙個天天處理資料的人,不得不說資料在記憶體中的儲存是必須要知道的問題。首先,資料在記憶體中的儲存涉及到作用域,儲存位置等方面的問題。根據資料的作用域,可將資料劃分為區域性變數和全域性變數 區域性變數的作用域為從定義開始到函式執行結束 全域性變數的作用域從程式開始到程式結束。計算機的記憶體分配可以...