C語言 百鍊成鋼12

2021-09-07 05:22:44 字數 1984 閱讀 9498

//

題目34:對10個數進行排序

#include

#include

//分析:使用氣泡排序

void

main();

//定義臨時變數

int temp = 0

;

//氣泡排序 雙迴圈

題目35:求乙個3*3矩陣對角線元素之和

#define _crt_secure_no_warnings#include

#include

//分析:就是乙個二維陣列,求a[0][0]+a[1][1]+a[2][2]的和,

void

main();

//二維陣列的遍歷需要使用雙for迴圈

for (int i = 0; i < 3; i++)

}int sun = 0

;

for (int i = 0; i < 3; i++)

printf(

"%5d

",arr[i][j]);

}printf("\n

");}

printf(

"\n求乙個3*3矩陣對角線元素之和是%d

題目36:有乙個已經排好序的陣列。現輸入乙個數,要求按原來的規律將它插入陣列中。

#define _crt_secure_no_warnings#include

#include

//分析:for迴圈,遍歷每個數,設定陣列從大到小,乙個個與輸入的數進行比較,插入對應的空中

//這裡需要用到動態分配記憶體,因為陣列的元素是固定的不可以隨意插入

void

main()

printf("\n

");//已經排好序的陣列已經準備好了

int num = 0

; printf(

"請輸入要插入的數字\n");

scanf("%d

",&num);

//再次用realloc函式分配記憶體

//新的大小可大可小(但是要注意,如果新的大小小於原記憶體大小,可能會導致資料丟失,慎用!)

int *p1 = realloc(p, sizeof(int)*11

);

//給最後乙個元素賦值0

*(p1 + 10) = 0

;

int temp = 0

;

//從前往後排序,存在著邏輯上的不方便。因為就算我找到了位置,後面的所有元素都要向後移動一位

//那麼有可能需要再寫乙個迴圈,來移動陣列元素的位置

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

}*///

我決定從後往前排序,因為最後面乙個位置本來就是空著的

for (int i = 9; i>=0; i--)

else

}printf(

"\n新排序的陣列\n");

for (int i = 0; i < 11; i++)

//釋放堆記憶體

C語言 百鍊成鋼4

題目10 列印樓梯,同時在樓梯上方列印兩個笑臉。define crt secure no warnings include include include 分析 樓梯,列印階梯形狀,涉及到行列,for迴圈 void main6 else x軸 題目11 古典問題 有一對兔子,從出生後第3個月起每個月...

C語言 百鍊成鋼11

題目31 請輸入星期幾的第乙個字母來判斷一下是星期幾,如果第乙個字母一樣,則繼續 判斷第二個字母。define crt secure no warnings include include include 分析 通過輸入的字母判定星期幾,可以使用if else void main scanf s s...

C語言 百鍊成鋼13

題目37 將乙個陣列逆序輸出。用第乙個與最後乙個交換。include include include 分析 逆序輸出,就會想到使用遞迴可以輕易實現,但是這次我就用for迴圈逆序列印吧 define n 10 這是為了以後動態陣列的使用 void main printf 原陣列 n for int p...