b004: 一個都不能少
輸入2個正整數n,m,共有n個,回來m個,印出還沒回來的數 例如:
輸入的n=4,m=3 接著回來的3個數為 5 3 1 則印出 2 4
須宣告整數n,m、陣列a[20+1] ,因題目規定最多20個:int n,m, a[21];
讀入n,m:cin >>n >>m;
以下使用i,k 也要宣告: int i,k;
將a[i]全設為0 for(i=1; i<=n; ++i) a[i]=0; // 6/12更新,因為從1開始算
讀入m個數k將 陣列a[k]設為1 : for(i=0; i<m; ++i){ 以下兩行 }
讀入m個數k將 陣列a[k]設為1 : for(i=0; i<m; ++i){ 以下兩行 }
某一個回來的數字k :
cin >> k;
將對應的 a[k]設為1表示已回來了: a[k]=1;
沒被設為1的就是還沒回來: for(i=1; i<=n; ++i)
if (a[i]==0) cout
<< i <<” “;
印完所有數字後印換行: cout << endl;
b005稍難,另一篇再介紹
b006: Hello, XXX!
輸入1個字串s,若為XXX,則輸出Hello, XXX!
例如:輸入 Mary 則輸出 Hello, Mary!
須宣告字串變數s: string s;
讀入 s : cin s;
印出Hello, 串上 s 及 ! : cout <<” Hello, ” << s << “!” <<
endl;
b007: 倒背如流
輸入1個字串s, 將輸入的字串s依相反的字元順序輸出
例如:輸入Hello,則輸出 olleH
須宣告字串變數s: string s;
讀入 s : cin >>s;
宣告整數 n = 字串長度-1 : int n=s.size()-1;
以下使用i也要宣告: int i;
將字串字元由n~0印出: for(i=n; i>=0; --i) cout << s[i];
印完所有字元後印換行: cout << endl;
b008: 迴文
輸入1個字串s, 判斷是否迴文{左右對稱}例:ABBA或ABCBA
須宣告字串變數s: string s;
讀入 s : cin >>s;
宣告 i 又 n為字串的長度: int i, n=s.size();
檢查前半及其對應的後半: for(i=0; i<n/2; ++i)
若不相等就是非迴文: if(s[i] !=
s[n-1-i]) break;
中間跳出的非迴文: if(i<n/2)
cout <<”NO” << endl;
else cout <<”YES”
<< endl;
0 意見:
張貼留言