【C++】実験二プログラム制御


文書ディレクトリ
  • 実践問題1
  • 実践問題2
  • 実践問題3
  • 実践問題4
  • 実践問題5
  • 実践問題1
    【問題の説明】
    ループ構造を利用して,作成プログラムは次のような「図形」を表示する.
    1
    131
    13531
    1357531
    135797531
    【入力形式】印刷図形の行数
    【出力形式】プリントパターン
    【サンプル入力】3
    【サンプル出力】
    1
    131
    13531
    【例の説明】各行には、中央のスペースを必要としないトップ・グリッドが出力されます.
    #include
    using namespace std;
    int main()
    {
        int n;
        cin >> n;
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=i;j++) cout << j*2-1;
            for(int j=i-1;j>=1;j--) cout << j*2-1;
            cout << endl;
        }
        return 0;
    }
    

    実践問題2
    【問題の説明】
    ある店は4種類の商品を販売しています:A商品は1キロ当たり2.75元です.B商品は12.5元です.C商品は1メートル当たり26.8元です.D商品は1台512元で、3台を超えると10%割引され、8台を超えると15%割引されます.価格を計算するプログラムを設計し、4つの商品を購入する数量を入力することで、各商品の対応金額と総額を計算し、表示します.
    【入力形式】
    各商品の数量を入力します.
    【出力形式】
    各商品の買掛金額と総額を出力します.
    【サンプル入力】
    1 2 3 2
    【サンプル出力】
    A:2.75
    B:25
    C:80.4
    D:1024
    total:1132.15
    【例の説明】出力データは1行を占める.
    #include
    #include 
    using namespace std;
    int main()
    {
    	int a,b,c,d;
    	double a_sum,b_sum,c_sum,d_sum;
    	cin >> a >> b >> c >> d;
    	cout << "A:" << (a_sum=a*2.75) << endl;
    	cout << "B:" << (b_sum=b*12.5)<< endl;
    	cout << "C:" << (c_sum=c*26.8)<< endl;
    	if(d>=0&&d<=3) d_sum=d*512;
    		else if(d>3&&d<=8) d_sum=d*512*0.9;
    			else d_sum=d*512*0.85;
    	cout << "D:" << d_sum << endl;
    	cout << "total:" << (a_sum+b_sum+c_sum+d_sum);
        return 0;
    }
    

    実践問題3
    【問題の説明】
    n以内に残り1を3で除かれ、個数が6のすべての整数(例えば16、46、…、286など)を求めて画面に表示する.
    【入力形式】
    数を入力
    【出力形式】
    すべての結果を出力、スペースで区切る
    【サンプル入力】
    300
    【サンプル出力】
    16 46 76 106 136 166 196 226 256 286
    【サンプル説明】余分な文字は使用しないでください.
    #include
    using namespace std;
    int main()
    {
    	int n;
    	cin >> n;
    	for(int i=1;i<=n;i++) if(i%3==1&&i%10==6) cout << i << " ";
        return 0;
    }
    

    実践問題4
    【問題の説明】
    プログラムを作成して参加選手の得点を統計し、得点基準は1つの最高点と1つの最低点を除いた後、残りの得点に対して平均値を求める.まず、キーボードから評価者の個数numを入力し、numの点数(点数が10以下の正実数)を入力して最終スコアを出力する必要があります.
    【入力形式】
    評価者の数と各スコアを入力します.
    【出力形式】
    得点を出力する.
    【サンプル入力】
    5 9.2 9.6 9.5 9.7 9.7
    【サンプル出力】
    9.6
    【サンプル説明】計算された最終スコアのみを出力します.
    #include
    using namespace std;
    int main()
    {
    	int n;
    	double min=10,max=0,sum=0,num;
    	cin >> n;
    	for(int i=1;i<=n;i++)
    	{
    		cin >> num;
    		if(min>num) min=num;
    		if(max<num) max=num;
    		sum+=num;
    	}
    	cout << (sum-min-max)/(n-2);
        return 0;
    }
    

    実践問題5
    【問題の説明】
    ユーザが入力した任意の正の整数a(a≧1)とb(b≧2)について,bn≦aを満たす最大の整数nを求めるプログラムを設計した.
    【入力形式】
    2つの数.
    【出力形式】
    1つのデータ.
    【サンプル入力】
    30 5
    【サンプル出力】
    2
    #include
    #include
    using namespace std;
    int main()
    {
    	int a,b,ans;
    	cin >> a >> b;
    	ans = log(a)/log(b);
    	cout << ans;
        return 0;
    }