Coursera C程式設計高階 期末考試

2021-08-20 20:27:48 字數 4695 閱讀 2360

注意: 總時間限制: 1000ms 記憶體限制: 65536kb

輸入二個正整數m 和 k,其中1 < m < 100000,1 < k <5 ,判斷m 能否被19整除,且恰好含有k個3,如果滿足條件,則輸出yes,否則,輸出no。

例如,輸入:

43833 3

滿足條件,輸出yes

如果輸入

39331 3

儘管有3個3,但不能被19整除,也不滿足條件,應輸出no

m 和 k 的值,空格間隔

滿足條件時輸出 yes,不滿足時輸出 no

1

43833 3

1

yes

#include#include using namespace std;

int main()

else

return 0;

}

注意: 總時間限制: 1000ms 記憶體限制: 65536kb

輸入一串長度不超過500個符號的字串,輸出在串中出現第2多的英語字母(大小寫字母認為相同)和次數(如果串中有其它符號,則忽略不考慮)。如果有多個字母的次數都是第2多,則按串中字母出現的順序輸出第1個。

例 ab&dcaab&c9defgb

這裡,a 和 b都出現3次,c和d都出現2次,e、f 和 g 各出現1次,其中的符號&和9均忽略不考慮。因此,出現第2多的應該是 c 和 d,但是 d 開始出現的位置在 c 的前面,因此,輸出為

d+d:2

(假定在字串中,次數第2多的字母總存在)

乙個字串

大寫字母+小寫字母:個數

1

ab&dcaab&c9defgb

1

d+d:2

#include#include #include #include int n = 0;

using namespace std;

char* letter(char *str)

i++;

} return newstr;

}int k = 0;//出現的字母個數

struct alpha ;

alpha strout[500] = ;

int deal(char input)

} if (find == false)

return 0;

}int main() ;

cin.getline(str, 500);

int m = strlen(str);

char *newstr;

newstr = letter(str);

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

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

}

alpha larggest = ;

alpha second = ;

for (int i = 0; i < k - 1; i++)

else if (strout[i].time > second.time&& strout[i].time < larggest.time)

} char temp = second.letter - 32;

cout << temp << '+' << second.letter << ':' << second.time;

return 0;

}

注意: 總時間限制: 1000ms 記憶體限制: 65536kb

兩個整數 a 和 b 運算後得到結果 c。表示為:a ? b = c,其中,?可能是加法 +,減法 -,乘法 *,整除 / 或 取餘 %。請根據輸入的 a,b,c 的值,確定運算子。如果某種運算成立,則輸出相應的運算子,如果任何運算都不成立,則輸出 error.

例如:輸入:

3,4,5

輸出:error

若輸入:

3,4,3

則輸出:

%a b和 c 的值在意行內輸入,以逗號間隔

五個運算子之一或 error

1

6,7,13

1

+

#includeusing namespace std;

int main()

return 0;

}

注意: 總時間限制: 1000ms 記憶體限制: 65536kb

在乙個平面上,如果有兩個點(x,y),(a,b),如果說(x,y)支配了(a,b),這是指x>=a,y>=b;

用圖形來看就是(a,b)坐落在以(x,y)為右上角的乙個無限的區域內。

給定n個點的集合,一定存在若干個點,它們不會被集合中的任何一點所支配,這些點叫做極大值點。

程式設計找出所有的極大點,按照x座標由小到大,輸出極大點的座標。

本題規定:n不超過100,並且不考慮點的座標為負數的情況。

輸入包括兩行,第一行是正整數n,表示是點數,第二行包含n個點的座標,座標值都是整數,座標範圍從0到100,輸入資料中不存在座標相同的點。

按x軸座標最小到大的順序輸出所有極大點。

輸出格式為:(x1,y1),(x2,y2),...(xk,yk)

注意:輸出的每個點之間有","分隔,最後乙個點之後沒有",",少輸出和多輸出都會被判錯

1

25

1 2 2 2 3 1 2 3 1 4

1

(1,4),(2,3),(3,1)

#includeusing namespace std;  

struct point ;

int main()

if (max == true)

} k--;//因為之前最後一次多了乙個k++,所以這裡-回來

for (int i = 0; i < k + 1; i++)

else if (maxs[i].x == maxs[j].x&&maxs[i].y > maxs[j].y)

} }

for (int i = 0; i < k+1 ; i++)

return 0;

}

wa but with right output:

#include#include #include using namespace std;

typedef struct coord

;int main() ;

vectord(n);

for (int i = 0; i < 2*n; i++)

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

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

if (count==n-1)d[i].flag = 1;

} for (int i = 0; i < n - 1; i++)

} }for (int i = 0; i < n; i++) }

system("pause");

return 0;

}

注意: 總時間限制: 1000ms 記憶體限制: 65536kb

當你站在乙個迷宮裡的時候,往往會被錯綜複雜的道路弄得失去方向感,如果你能得到迷宮地圖,事情就會變得非常簡單。

假設你已經得到了乙個n*m的迷宮的圖紙,請你找出從起點到出口的最短路。

第一行是兩個整數n和m(1 <= n,m <= 100),表示迷宮的行數和列數。

接下來n行,每行乙個長為m的字串,表示整個迷宮的布局。字元'.'表示空地,'#'表示牆,'s'表示起點,'t'表示出口。

輸出從起點到出口最少需要走的步數。(你不能起出迷宮外)

參***:

#include #include using namespace std;

int m,n;//n行m列

char map[101][101];//地圖矩陣

int already[101][101];//已走地圖記憶

int min_count=0;

void cross(int u, int v, int i, int j)

t++;

if (v < m - 1 && map[u][v+1] != '#' && already[u][v+1]>t)//在迷宮內、右側非牆且此點沒有走過

if (u > 0 && map[u-1][v] != '#' && already[u-1][v]>t)

if (v > 0 && map[u][v-1] != '#' && already[u][v-1]>t)

if (u < n - 1 && map[u+1][v] != '#' && already[u+1][v]>t)

}int main()

if (map[i][j]=='t') }}

memset(already,1,sizeof(already));//按位元組為單位賦值:16843309

already[startx][starty]=0;

cross(startx,starty,endx,endy);

cout

}

Coursera C程式設計高階 第二週

已知乙個整數陣列x,其中的元素彼此都不相同。找出給定的陣列中是否有乙個元素滿足x i i的關係,陣列下標從0開始。舉例而言,如果x 則x 3 3,因此3就是答案。輸入第一行包含乙個整數n 0 n 100 表示陣列中元素的個數。第二行包含n個整數,依次表示陣列中的元素。輸出為乙個整數,即滿足x i i...

Coursera C程式設計高階 第三週作業

注意 總時間限制 1000ms 記憶體限制 65536kb 輸入乙個句子 一行 將句子中的每乙個單詞翻轉後輸出。只有一行,為乙個字串,不超過500個字元。單詞之間以空格隔開。所謂單詞指的是所有不包含空格的連續的字元。這道題請用cin.getline輸入一行後再逐個單詞遞迴處理。翻轉每乙個單詞後的字串...

C程式設計高階 期末考試

程式設計題 1 含k個3的數 簡單,但查到了一些東西 輸入二個正整數m 和 k,其中1 m 100000,1 k 5 判斷m 能否被19整除,且恰好含有k個3,如果滿足條件,則輸出yes,否則,輸出no。例如,輸入 43833 3 滿足條件,輸出yes 如果輸入 39331 3 儘管有3個3,但不能...