[コンピュータプログラム設計C+]第3週プログラミング作業


本文は西安交通大学の《コンピュータのプログラムの設計のC++》の第3週のプログラミングの宿題に対する説明です.
1隣接する3文字を印刷(20点)
タイトル内容:
ユーザが英語のアルファベットを入力すると、プログラムはアルファベットの順序で3つの隣接するアルファベットを印刷することができ、ユーザが入力したアルファベットは中間にある.
プログラムの実行結果は次のとおりです.
  d  
  cde

ここでは、アルファベットの先頭と末尾の2つのアルファベットが接続されていると仮定します.アルファベットZを入力すると、プログラム出力YZAとなります.
入力形式:
1つのアルファベット文字は、大文字でも小文字でも可能です.
出力フォーマット:
3文字連続で、大文字と小文字は変更されません.
サンプルを入力:
  d

出力サンプル:
 cde

時間制限:2000 msメモリ制限:32000 kb
次のコードは参照用のみです.
#include 
using namespace std;

int main(int argc, char *argv[]) 
{
    char a,b,c;
    cin>>b;
    
    if(b>= 65 && b <= 90){   //     
    	
    	a = (b - 'A' - 1 + 26) % 26 + 'A';
    	c = (b - 'A' + 1) % 26+'A';
    	
	}
	else{
		
		a = (b - 'a' - 1 + 26) % 26 + 'a';
    	c = (b - 'a' + 1) % 26+'a';
	}
    
    cout<<a<<b<<c<<endl;
    return 0;
}

2歌唱大会選手成績計算(20点)
タイトル内容:
歌唱大会の選手成績の算出方法は、最高点を1つ、最低点を1つ、残りの点数の平均値を選手の最終成績とする.ここでは、10人の審査員が百分制で採点されていると仮定します.
プログラムの実行結果は次のとおりです.
88 90 97 89 85 95 77 86 92 83

88.5

審査員が与えた成績が0~100点でない場合、エラーメッセージが表示されます.
プログラムの実行結果は次のとおりです.
101 90 97 89 85 95 77 86 92 83

the score is invalid.

入力形式:
10個の[001]の間の数.
出力フォーマット:
1個は小数の数またはヒント情報「the score is invalid.」を表すことができる.
平均変数はdouble型を使用します.
    :

88 90 97 89 85 95 77 86 92 83


    :

88.5

時間制限:2000 msメモリ制限:32000 kb
#include 
using namespace std;

int main(){
	int min, max, score[10], sum=0;
	float ave=0.0;
	int i;
	for(i=0; i<10; i++){
		cin>>score[i];
		if(score[i] >100 ||score[i]<0 )
			cout<<"the score is invalid."<<endl;
			break;
	}
	cout<<endl;
	min = score[0];
	max = score[0];
	for(i=0; i<10; i++){
		sum += score[i];
		if(score[i]>max) max=score[i];
		if(score[i]<min) min=score[i];
	}
	ave = (sum-max-min)/8;
	cout<<ave<<endl; 
	
	return 0; 
} 

3サルが桃を食べる(20分)
タイトル内容:
ある日、あるサルは桃を少し摘んで、その時半分食べて、また中毒にならないで、そこで1つ多く食べました.これから毎日、n日目に食べたくなると、桃が1つしか残っていないことに気づきました.nを入力し、n日目までに桃が1個残っていることを示します.1日目にサルが摘んだ桃の数を計算してください.
プログラムの実行結果は次のとおりです.
10

1534

入力形式:
整数n,n>0を入力し、n日目に桃が1個残ることを示します.
出力フォーマット:
1日目に取った桃の数を表す整数.
    :

10



    :

1534

時間制限:2000 msメモリ制限:32000 kb


43-4タイル運搬問題(20点)
タイトル内容:
既存のnブロックのレンガは、n人が一度に運ぶことができ、男性が一度に4ブロックを運ぶことができると仮定し、女性は一度に3ブロックを運ぶことができ、2人の子供が1ブロックを運ぶことができ、このn人の中で男性、女性、子供の人数を計算する.人数とレンガ数nを入力し、可能なソリューションを出力します.
プログラムの実行結果は次のとおりです.
50

men0

women10

children40

men5

women3

children42

満たされていない場合は、「no result!」というプロンプトが表示されます.
プログラムの実行結果は次のとおりです.
1

no result!

入力形式:
人数を表す整数数
出力フォーマット:
すべての条件を満たす男、女、子供の人数またはヒント情報「no result!」
出力フォーマットは例を参照してください.複数組のシナリオがある場合は、男性の数が少ない順に出力します.男性の数と同時に、女性の数は少ないから多い.
サンプルを入力:
50



    :

men0

women10

children40

men5

women3

children42

時間制限:2000 msメモリ制限:32000 kb


5セントのおつり(20点)
タイトル内容:
nセントを25、10、5、1セントに変換するコインは全部で何種類の変換方法がありますか?
実行結果は次のとおりです.
25

13

nが0~99の間にない場合は、プロンプトメッセージ「the money is invalid!」を出力します.
実行結果は次のとおりです.
101

the money is invalid!

入力形式:
整数、美分数を表す
入力は[0,99]の間の整数ではない場合があります.入力がこの区間にない場合は、「the money is invalid!」と出力します.
出力フォーマット:
変換メソッド数またはヒント情報「the money is invalid!」(引用符をつけないでください.単語の間にスペースが1つしかありません)
    :

25



    :

13

時間制限:2000 msメモリ制限:64000 kb