C C 練習題目總結

2021-10-14 04:49:20 字數 3892 閱讀 6606

題目:

從鍵盤輸入一行或幾行字串,行數由鍵盤輸入,一行字串用字元陣列儲存。字串中只有英文數字和字元

void

calculate

(char

*s);

//ascii碼一共128個,全部算入

while

(*s!=

'\0'

)}

題目:

有10個小朋友圍成一圈分糖果,老師順次分給每人一定數量糖果(初始值為偶數)然後按照下列規則調整,所有小朋友同時把自己的糖果分一半給右邊的人,糖果數變為奇數的人,向老師補要一塊糖果,問經過多少次調整後,大家糖果數一樣多,且每人多少塊。建立兩個函式,乙個負責傳遞糖果,乙個負責判斷所有人的糖果是否相等。

解答:

#include

using

namespace std;

static

int a[10]

;int

pass()

a[0]

= a[0]

/2+ temp /2;

for(

int i =

0; i <

10; i++)if

(a[i]%2

!=0) a[i]++;

}int

judge()

pass()

; n++

; sum =0;

}}intmain()

最佳**(程式設計師思維)

#include

using

namespace std;

intmain()

else

cout << a1 + a2 + a3 + a4 << endl;

}}

數學思維:規律: f(n) = f(n-1) + f(n-3) n>= 4

#include

using

namespace std;

intmain()

cout << num << endl;

} cin >> n;

}}

(字元重複置換的一種簡化方式)

題目:

密碼是我們生活中非常重要的東東,我們的那麼一點不能說的秘密就全靠它了。哇哈哈. 接下來淵子要在密碼之上再加一套密碼,雖然簡單但也安全。假設淵子原來乙個bbs上的密碼為zvbo9441987,為了方便記憶,他通過一種演算法把這個密碼變換成yuanzhi1987,這個密碼是他的名字和出生年份,怎麼忘都忘不了,而且可以明目張膽地放在顯眼的地方而不被別人知道真正的密碼。  

他是這麼變換的,大家都知道手機上的字母: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,就這麼簡單,淵子把密碼**現的小寫字母都變成對應的數字,數字和其他的符號都不做變換,

宣告:密碼中沒有空格,而密碼**現的大寫字母則變成小寫之後往後移一位,如:x,先變成小寫,再往後移一位,不就是y了嘛,簡單吧。記住,z往後移是a哦。

輸入包括多個測試資料。輸入是乙個明文,密碼長度不超過100個字元,輸入直到檔案結尾。輸出淵子真正的密文。

自己的**:`

#include

#include

using

namespace std;

intmain()

; cin.

getline

(ch,

100,

'\n');

for(i =

0; i <

100; i++)}

for(i =

0; i <

100; i++

) cout << str << endl;

}

可以看出,使用了很多的if else語句,但是對於單一的字元型別轉換為一種數字,可以簡化,為

int

main()

; cin.

getline

(ch,

100,

'\n');

for(i =

0; i <

100; i++

) cout << str << endl;

}

將if-else用兩個陣列的對應關係表示出來,簡便很多。

自己錯誤的**

#include

using

namespace std;

void

rank_c

(char

*p)}

}}intmain()

;for

(int i =

0; i <

5; i++

)rank_c

(p);

for(

int i =

0; i <

5; i++

)else

}}

發現:

只比較了第乙個字母的大小,沒有考慮到首字母相同時的情況

問題原因:

不熟悉int strcmp(const chars1,const chars2);函式

s1>0

s1=s2 => =0

s1<0

更改:包含標頭檔案cstring

/===/所夾一行改為

if

(strcmp

(name[j]

, name[j +1]

)>0)

cout<}//該**沒有使用除法,所以避免了很多問題

對於乙個 n個頂點的凸多邊形,它的任何三條對角線都不會交於一點。請求出圖形中對角線交點的個數。

思路:每四個頂點決定乙個交點,所以將頂點進行組合,組合數即為交點個數

示例:

#include

#include

using

namespace std;

intmain()

#include

using

namespace std;

intmain()

;int y, m;

bool run;

cin >> y >> m;

run =

((y %4==

0&& y %

100!=0)

|| y %

400==0)

?1:0

;if(run)

cout << a[m -1]

;}

int

min(

int a,

int b,

int c)

int

num(

int n,

int s)

if(n % s !=0)

}

給出n(1≤n≤13),請輸出乙個直角邊長度是 n 的數字直角三角形。所有數字都是 2 位組成的,如果沒有 2 位則加上前導 0。

#include

#include

"stdio.h"

using

namespace std;

intmain()

cout << endl;

n--;}

}

python練習題目

三色球問題 有紅 黃 藍三種顏色的求,其中紅球 3 個,黃球 3 個,綠球 6 個。先將這 12 個球混合放在乙個盒子中,從中任意摸出 8 個球,程式設計計算摸出球的各種顏色搭配。print red tyellow tblue for red inrange 0,4 for yellow in ra...

Hive練習題目

hive 基本操作 1 資料自己造 a表 id int,name string b表 id int,job id int,num int c表 job id int,job string 建表語句 載入資料 a表和b表進行鏈結操作,並觀察結果 內連線 左連線 left join 小表在前,大表在後 ...

練習題目2

1 將陣列a中的內容和陣列b中的內容進行交換 陣列一樣大 思路 新建乙個陣列作為中間陣列進行交換.如下 2 計算1 1 1 2 1 3 1 4 1 5 1 99 1 100的值.思路 通過每一輪迴圈給分子乘以 1來控制加數的正負號,計算出和.如下 3 編寫程式數一下1到199的所有整數 現過多少次數...