程式設計練習 指標

2021-10-03 08:44:19 字數 1844 閱讀 9745

32位系統下任何型別指標的長度都是4個位元組

寫乙個函式,判斷乙個字串是否為另外乙個字串旋轉之後的字串。

例如:給定s1 =aabcd和s2 = bcdaa,返回1

給定s1=abcd和s2=acbd,返回0.

aabcd左旋乙個字元得到abcda

aabcd左旋兩個字元得到bcdaa

aabcd右旋乙個字元得到daabc

#define _crt_secure_no_warnings

#include

#include

#include

introtate

(char str1,

char str2)

return0;

}int

main()

else

system

("pause");

return0;

}

//程式執行待解決

實現乙個函式,可以左旋字串中的k個字元。

例如:abcd左旋乙個字元得到bcda

abcd左旋兩個字元得到cdab

方法一:暴力移位法

首先我們定義乙個tmp,將這個字串中的第乙個字元儲存起來,然後將字串後面所有的字元向前移動,最後將儲存的第乙個字元放在最後。左旋k個字元就迴圈k次,就可以實現。

但是此方法沒有考慮效率問題,如果左旋的次數多了,那麼後面的字元則會多次移動。

void

left_move

(char arr,

int k)

*(arr + len -1)

= tmp;}}

intmain()

方法二:三步翻轉法

如:abcdef(左旋兩個字元)

第一步,將前半部分的字元逆序----->bacdef

第二步,將後半部分的字元逆序----->bafedc

第三步,將字串整體逆序----->cdefab

所以此時我們需要構造乙個逆置函式,連續呼叫三次即可實現。此方法較為高效。

void

reverse

(char

* left,

char

* right)

}void

left_move

(char arr,

int k)

intmain()

楊氏矩陣

有乙個數字矩陣,矩陣的每行從左到右是遞增的,矩陣從上到下是遞增的,請編寫程式在這樣的矩陣中查詢某個數字是否存在。

要求:時間複雜度小於o(n);

int

findsame

(int arr[

3],int row,

int col,

int key)

system

("pause");

return0;

}int

main()

;int key =0;

int row =3;

int col =3;

scanf

("%d"

,&key)

;findsame

(arr, row, col, key);if

(findsame

(arr, row, col, key)

)return

printf

("找到了!\n");

else

printf

("沒找到!\n");

return0;

}

C語言程式設計(練習2 陣列和指標)

題目 編寫程式,把下面的資料輸入乙個二維陣列中。25 36 78 13 12 26 88 93 75 18 22 32 56 44 36 58 然後執行以下操作 輸出矩陣兩個對角線上的數 分別輸出各行和各列的和 交換第一行和第三行的位置 交換第二列和第四列的位置 輸出處理後的陣列 實現 編寫程式,把...

C語言程式設計(練習9 陣列與指標)

題目 有 5 個字串,首先將它們按照字串中的字元個數由小到大排列,再分別取出每個字串的第三個字母合併成乙個新的字串輸出 若少於三個字元的輸出空格 要求 利用字串指標和指標陣列實現。實現 有 5 個字串,首先將它們按照字串中的字元個數由小到大排列,再分別取出每個字 符串的第三個字母合併成乙個新的字串輸...

c 程式設計練習 012 這個指標哪來的

北大程式設計與演算法 三 測驗題彙總 2020春季 填空,按要求輸出 include using namespace std struct a 在此處補充你的 intmain 輸入無輸出 10樣例輸入 無樣例輸出 10 guo wei const a a 10 是常量物件,那麼const a p a...