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...