複習 C程式設計

2021-10-12 19:57:30 字數 4658 閱讀 1084

#include

#include

//2019 2

int*

sort

(int a,

int n,

int q,

int p)

else

return a;

}int

*sort2

(int a,

int n,

int q,

int p)

else

return a;

}//約瑟夫環,一群人圍著做,依次報數,報到doom出局,繼續重0報數,輸出所有人出局序號

/*關鍵點:

1 迴圈:index=(index+1)%n

2 報數:有人報數,沒人不報數,number+=a[index],陣列存放01,0沒人,1有人

3 出局:列印位置、狀態更改、報數清0、人數-1

4 大迴圈:剩餘人數》0

*/#define n 10

intjoseph

(int doom)

num =

(num +1)

% n;}}

//模擬題1

//約瑟夫環改:k個壞人出局,所需最小報數。

//關鍵:每次判斷出局時,如果該位置為壞人,則合理出局,否則結束此輪迴圈,doom++,如果有一次所有壞人出局,

//則列印doom。

intminjoseph

(int k)

else

} num =

(num +1)

%(2* k);}

if(alive ==0)

return doom;

doom++;}

}//模擬題2

//洗盤子演算法:每次從佇列中將第乙個人設為幸運兒,對應編號步長後面的人要洗盤子,,最終生成乙個幸運兒序列,

//輸入n,輸出第n個幸運兒

/*關鍵:

設定洗盤子的人步長:為第乙個人的編號,對應編號下的人需要洗盤子

迴圈訪問所有人:如果沒有洗盤子,就是幸運兒。

如何在混合的人群中找步長下沒有洗盤子的人:遇到人之後,看有沒有洗,如果沒有洗,列入步長中,否則步長不增加。

*//*num是幸運兒,step是對應步長,j是遍歷的人,vis是判斷洗盤子*/

#define max 10000

int ans[

3000];

//答案陣列

int vis[

10000]=

;//標記洗盤子

intwash()

}}}int x;

while

(scanf

("%d"

,&x)

&& x)

//實現輸入0則終止

printf

("%d"

, ans[x]);

return;}

//國王分金幣

intkingmoney

(int day)

if(i * j >

2* day)

int sum =0;

for(

int k =

1; k <= i; k++

) sum +

= k * k;

sum +

= leftday *

(i +1)

;return sum;

}void

gay(

) k =0;

for(

int i =

0; i < x; i++

)for

(int j = y -

1; j >= k; j--

)else

if(a[i]

+ a[j]

>

10000)}

}//計算題a1.b1.c1+a2.b2.c2

void

calculate()

else c3 = c1 + c2;

if (b1 + b2 + tempc >= 1000)

else b3 = b1 + b2;

a3 = (a1 + a2) + tempb;*/

c3 = c1 + c2;

b3 = b1 + b2;

a3 = a1 + a2;

if(c3 >=

1000)if

(b3 >=

1000

)printf

("%d.%d.%d"

, a3, b2, c3);}

}//不四捨五入,保留n位小數:把餘數*10看作新的被除數,迴圈除,本質就是正常的除法運算。

void

_float

(int num,

int a,

int b)}}

//lucky word

void

luckyword

(char str)

for(

int i =

0; i <

26; i++

)int num = max - min,sum=0;

for(

int i =

2; i <= num/

2; i++)if

(sum ==0)

printf

("lucky word");

else

printf

("bad word");

}typedef

struct patient patient[n]

;void

dedicalcare()

int b[n]

,sum=0;

for(

int i =

0; i < n; i++)}

int max =

59,k,j ;

for(

int x =

0,j=

0; x < sum; x++)}

if(j>

0&&p[k]

.age == b[j-1]

.age&& p[k]

.id > b[j]

.id)

else

} max =0;

int u;

for(

int y =

0; y < n-sum; y++)}

b[j]

.id = p[u]

.id;

p[j]

.f =2;

j++;}

for(

int z =

0; z < n; z++

)printf

("%d"

, b[z]

.id);}

void

worm

(int x,

int y,

int z)

for(

int i = x+

1; i <= z+

1; i++

) else */

}printf

("%d"

, a[z]);

}奶牛書架

intmilk

(int a[n]

,int h)

, num =0;

while

(sum < h)

sum + max;

num++

; b[i]=1

;}return num;}}

加密char

*code

(char str)

}char a[

100]

;for

(i =

0; i < l; i++

)for

(i =

0; i < l; i++

)return a;

} 兩兩求和累加

intsum()

int c =

(num -1)

* num /

2,sum=0;

for(i =

0; i < c; i++

)for

(j =

0; j < c; j++

)for

(i =

0; i < c; i++

) sum +

= b[c];}

//哥德**猜想

void

gdbh()

}}}}

intsingle

(int a)

return0;

}//計算從1到i對應二進位制中1的個數

intascii

(int i)

printf

("%d "

, sum);}

}int

main()

; s = a;

scanf_s

("%d%d"

,&m,

&n);

for(

int i =

0; i < m; i++

)for

(int k =

0; k < n; k++

)printf

("%d"

, a[k]);

system

("pause");

}

c語言基本程式設計複習

1 求1 2 3 100。迴圈 答案 include void main 2 求1 2 3 10。迴圈 答案 void main printf d j return 0 3 輸入三個數字,輸出他們的最大值。if 答案 include void main int max int x,int y,int...

c語言基本程式設計複習

1 求1 2 3 100。迴圈 答案 include void main 2 求1 2 3 10。迴圈 答案void main printf d j return 0 3 輸入三個數字,輸出他們的最大值。if 答案 include void main int max int x,int y,int ...

C 物件導向程式設計複習

向上型別轉換 派生類轉換為基類型別 靜態繫結,早繫結 實現多型用動態繫結,繫結推遲到程式執行時,c 中用虛函式實現 非靜態成員函式可以宣告為虛函式,虛函式繫結是根據物件型別確定的 派生類定義的虛函式引數表與基類不同,在派生類中會隱藏基類的虛函式。函式名與參數列相同,返回型別不同,編譯器報錯 建構函式...