第7回の演習:解答例

(1) 整数nを入力すると,n!を一回だけもとめるプログラムをfor文を用いて作成せよ.(注意:0!=1)


/*///////////////////////*/
/*    2008_7kadai1.c     */
/*///////////////////////*/

#include <stdio.h>

void main()
{
	int i, n, fact=1;
	
	printf("整数nを入力してください:");
	scanf("%d",&n);
	
	for(i=0;i<n;i++){
		fact *= i+1;
	}
	
	printf("n! = %d¥n",fact);
	
}

(2) まずデータ(例えば実験データなど)の件数 n を整数で入力し,続いてその件数分データを入力すると,
  データの合計と平均値を求め画面に表示するプログラムをfor文を用いて作成せよ.

  データの例:5(データ件数,これは整数),続いて 10.2 9.8 3.3 8.4 11.9 と順に入力すると,合計は...


/*///////////////////////*/
/*    2008_7kadai2.c     */
/*///////////////////////*/

#include <stdio.h>

void main()
{
	int i, n;
	float data,sum=0.0;
	
	printf("データ件数nを入力してください:");
	scanf("%d",&n);
	
	for(i=0;i<n;i++){
		printf("データを入力してください:");
		scanf("%f",&data);
		
		sum += data;
		
	}
	
	printf("データの合計値は,%.2fです.¥nデータの平均値は,%.2fです.¥n",sum,sum/(float)n);
	
}

(3) 掛け算九九の1から9の段の式と答えを表すプログラムをfor文を用いて作成せよ.


/*///////////////////////*/
/*    2008_7kadai3.c     */
/*///////////////////////*/

#include <stdio.h>

void main()
{
	int i, j;
	
	for(i=0;i<9;i++){
		for(j=0;j<9;j++){
			printf("%d x %d = %d¥n",i+1,j+1,(i+1)*(j+1));
		}
	}
}

(4) 成績データ(0以上100以下)を何件か入力し,その最大値を求めるプログラムを作成せよ.ただし,データ件数は始めに入力する.


/*///////////////////////*/
/*    2008_7kadai4.c     */
/*///////////////////////*/

#include <stdio.h>

void main()
{
	int i,n,data,max=0;
	
	printf("データ件数nを入力してください:");
	scanf("%d",&n);
	
	for(i=0;i<n;i++){
		printf("成績データを入力してください:");
		scanf("%d",&data);
		
		if(max<data){
			max = data;
		}
	}
	
	printf("成績の最高得点は%d点です。¥n",max);
	
}

(5) m枚のカードからn枚選んで順に並べる場合の数(順列)を,自然数m,nを入力すると答えるプログラムを作成せよ.


/*///////////////////////*/
/*    2008_7kadai5.c     */
/*///////////////////////*/
#include <stdio.h>

void main()
{
	int i,n,m,perm=1;
	
	printf("カードの枚数mを入力してください:");
	scanf("%d",&m);
	printf("抜き出すカードの数nを指定して下さい:");
	scanf("%d",&n);

	for(i=m;i>(m-n);i--){
		perm *= i;
	}
	
	printf("%d枚のカードから%d枚のカードを抜き打だすときの組み合わせは%d通りです¥n",m,n,perm);
	
}