C語言基礎訓練 02

2021-09-01 17:34:21 字數 1519 閱讀 8556

假設a=10,b=20,借助於中間變數c,先將a的值賦給c,再將b的值賦給a,最後將c的值賦給b,完成交換。

#include#includeint main()

假設a=10,b=20,此處用了兩種解法:

解法1:先將a+b的值賦給a,此時a=30;將a-b的值賦給b,此時b=10;再將a-b的值賦給a,此時a=20;

解法2:用到二進位制異或的思想,首先明確,異或是以一種邏輯運算,當值相同時得到0,值不同時得到1。

a=10  0000 1010

b=20  0001 0100

a=a^b= 0001 1110  a=30

b=a^b= 0000 1010  b=10

a=a^b= 0001 0100  a=20

#include#includeint main()

#include#includeint main()

隨機建立乙個有10個數的一維陣列,建立中間變數i,將a[1]的初值賦給max,通過for語句迴圈,當a[i]>max時,將a[i]的值賦給max。

#include#includeint main()

; int i=2, max=a[1];

for (; i <= 10; i++)

printf("這十個數中的最大值為%d\n",max);

system("pause");

return 0;

}

定義乙個隨機數組a[3]=,通過if語句進行比較,將其按照從大到小的順序分為放在max,mid,min,最後將其輸出。

#include#includeint main()

; int max, mid, min;

printf("三個數分別為:%d,%d,%d\n", a[0], a[1], a[2]);

if (a[0] > a[1] && a[0] > a[2])

if (a[1] > a[0] && a[1] > a[2])

if (a[2] > a[0] && a[2] > a[1])

printf("這三個數從大倒小的順序為:%d,%d,%d\n",max,mid,min);

system("pause");

return 0;

}

此處用到輾轉相除法,進行此次運算,取兩個數中最大的數做除數,較小的數做被除數,用最大的數除較小數,如果餘數為0,則較小數為這兩個數的最大公約數,如果餘數不為0,用較小數除上一步計算出的餘數,直到餘數為0,則這兩個數的最大公約數為上一步的餘數。

#include#includeint main()

while (a % b != 0)

printf("最大公約數為:%d",b);

system("pause");

return 0;

}

學藝不精,望批評指正。

C語言基礎訓練題 四

1.螢幕上輸出以下圖案 for int i 0 i 6 i putchar n for int i 5 i 0 i putchar n 2.求出0 999之間的所有 水仙花數 並輸出。求0 999的水仙花數 printf 0 999內的水仙花數 n for int i 0 i 1000 i if i...

C語言基礎訓練題 五

實現乙個函式,列印乘法口訣表,口訣表的行數和列數自己指定,輸入9,輸出99口訣表,輸入12,輸出1212的乘法口訣表。使用函式實現兩個數的交換。實現乙個函式判斷year是不是閏年。建立乙個陣列,實現函式init 初始化陣列 實現empty 清空陣列 實現reverse 函式完成陣列元素的逆置。要求 ...

python基礎訓練task02

我們準備利用17天時間,將 python 基礎的刻意練習分為如下任務 task01 變數 運算子與資料型別 1day task02 條件與迴圈 1day task03 列表與元組 2day task04 字串與序列 1day task05 函式與lambda表示式 2day task06 字典與集合...