程式設計題#1:含k個3的數(簡單,但查到了一些東西)
輸入二個正整數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.itoa實現數字到字串格式轉換#include
using
namespace
std;
int main() //看每一位有沒有3,這裡本來用的itoa,但poj通不過》。
if (num_3 ==k);
else
flag = 0;
if (flag)cout
<< "yes"
<< endl;
else
cout
<< "no"
<< endl;
return
0;}
2.另有sprintf也可完成類似功能,沒有試,暫時不管#include
itoa(num,str,10);//str給個指標就行,10是進製數
char*itoa(int
value,char*string,int radix);
intvalue 被轉換的整數,char *string 轉換後儲存的字元陣列,int radix 轉換進製數,如2,8,10,16 進製等
itoa操作使用
itoa操作使用
標頭檔案:
3.0到9的ascii碼是48+i,本來想用這個轉字串的,後來發現這題不需要轉字串》。
程式設計題#2:字串中次數第2多的字母(不難)
輸入一串長度不超過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多的字母總存在)
輸入乙個字串
輸出大寫字母+小寫字母:個數
感覺寫的結構不太好。#include
#include
using namespace std;
int second(int a)
}for (int i = 0; i < 26; i++)
max = 0;
for (int i = 0; i < 26; i++)
}return max;
}int main() ;//a[0]對應'a'的出現次數,以此類推
for (int i = 0; i < len; i++)
if (str[i] >= 'a'&&str[i] <= 'z')
}int sec_num = second(a);//找到第二多的,sec_num存第二大的出現次數
char b[26] = {};
for (int i = 0,j =0; i< 26; i++)
}//b中存第二多的字母,因為可能不止乙個
int len2 = strlen(b);
char sec=0;
for (int i = 0; i < len; i++)
}if (sec != 0)
break;
}//找到第乙個出現的第二多字母
char upper = sec - 32;
cout << upper << '+'
<< sec << ':'
<< sec_num << endl;
return
0;}
程式設計題#4:尋找平面上的極大點(不難,但中間出了點小錯找了很久)
在乙個平面上,如果有兩個點(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)
注意:輸出的每個點之間有」,」分隔,最後乙個點之後沒有」,」,少輸出和多輸出都會被判錯
最後乙個走迷宮沒寫》。#include
using
namespace
std;
int main() ;
int flag = 1,k = 0;
int (*p)[2] = b;//本打算用指標,但這行沒有用
for (int i = 0; i < num; i++) //這裡,開始少了j!=i導致一直輸出錯
}//cout << flag << endl;調了很長時間才想起來看下這個flag,以後記得可能有問題的地方直接cout看下變數值
if (flag == 1)
flag = 1;
}//極大點存b裡面
int c[100][2];
int max = a[0][0], maxnum = 0;
for (int i = 0; i < k; i++)
}c[i][0] = b[maxnum][0];
c[i][1] = b[maxnum][1];
max = -1;
b[maxnum][0] = -1;
}//b裡面的座標排序,從大到小排c裡面
for (int i = k - 1; i >= 1; i--)
cout
<< '('
<< c[i][0] << ','
<< c[i][1] << ')'
<< ',';
cout
<< '('
<< c[0][0] << ','
<< c[0][1] << ')'
0;}
Coursera C程式設計高階 期末考試
注意 總時間限制 1000ms 記憶體限制 65536kb 輸入二個正整數m 和 k,其中1 m 100000,1 k 5 判斷m 能否被19整除,且恰好含有k個3,如果滿足條件,則輸出yes,否則,輸出no。例如,輸入 43833 3 滿足條件,輸出yes 如果輸入 39331 3 儘管有3個3,...
北航c 期末考試複習
筆者總結了北航計算機系c 考試的一些重點,希望對以後複習的同學能有所幫助 迭代器,工程模式,觀察者模式必考 變數基本資料型別 void bool char intfloat double wchar t short int typedef newtype oritype sizeof 三種用法 si...
C 期末考試複習筆記
c 語言是物件導向的程式語言,字尾名是.cs c 語言沒有指標c 語言完全擁有.net的自動 機制 c 語言不能用於硬體驅動程式的開發 net是乙個用於建立應用程式的平台 源 是乙個用於應用程式的核心,沒有源 則無法編譯乙個應用程式 工具欄是一些工具按鈕的組合 console.readline 的作...