第12回演習の解答例


(1)2つの整数a,bの値を入力して,2つの数の間の整数の和を求めるプログラム


#include <stdio.h>

void main()
{
    int a,b,i,sum=0;
	
	printf("a=");scanf("%d",&a);
	printf("b=");scanf("%d",&b);


	if(a<b){
		for(i=a; i<=b; i++){
			sum += i;
				}
		printf("aとbの和は%dです¥n",sum);
		}
	else if (a>b){
		for(i=b; i<=a; i++){
			sum += i;
				}
		printf("aとbの和は%dです¥n",sum);
			}
	else{
		printf("aとb同じ値だよ?");
		}
	
}	


(2)m枚のカードからn枚選んで一列に並べる順列を求めるプログラム


#include <stdio.h>

void main()
{
	int m,n,i,P = 1;
	
	printf("m=");scanf("%d",&m);
	printf("n=");scanf("%d",&n);


	if(m<n){
		printf("それはおかしいっしょ\n");
		}
	else{
		for(i=m; i>m-n; i--){
			P *= i;
				}
		printf("順列は%dです¥n",P);
		}
	
}	

(3)a÷bを引き算を用いて計算するプログラム


#include <stdio.h>

void main()
{

	int a,b,i,Q,R,count=0;
	
	printf("a=");scanf("%d",&a);
	printf("b=");scanf("%d",&b);

	while(a>=b){
		a -= b;
		count++;
			}
		Q = count;
		R = a;
	printf("a/b=%dあまり%d",Q,R);
}


(4)nを入力して素数かどうかチェックするプログラム


#include <stdio.h>

void main()
{
    int i,n,a;
	
	printf("自然数n=");
	scanf("%d",&n);

	if( n < 1 ){
		printf("自然数を入力してください.¥n");}
	else if( n == 1 ){
		printf("1は素数ではありません.¥n");}
	else{
		i=1;
		a=0;
		while( i <= n ){
			if(n%i==0){
				a++;}
			i++;}
		if( a == 2 ){
			printf("%dは素数です.¥n",n);}
		else{
			printf("%dは素数ではありません.¥n",n);}
	}
}



(5)要素数10の配列の平均値を求め,平均値以上の数字を表示するプログラム


#include <stdio.h>

void main()
{
	
	int a[10], i, j, sum=0;
	float ave;
	
	for(i=0; i<10; i++){
		printf("%d番目の要素の値=",i);scanf("%d",&a[i]);
				}
		

	for(i=0; i<10; i++){
		sum += a[i];
				}
	ave = sum/10;
	printf("平均値は%.2fです¥n",ave);
	printf("平均値より大きい要素は・・・\n");

	for(i=0; i<10; i++){
		if(ave<=a[i]){
			printf("%d番目の要素で値は%dです¥n",i,a[i]);
				}
			    }
}

(5)4*4の二次元配列の中身を上下逆転させるプログラム


#include <stdio.h>

void main()
{
	int X[4][4] = {{1,0,2,4},		/*行列の定義*/
	               {2,0,4,8},
		       {4,0,9,6},
		       {8,1,9,2}};
		   
	int i,j,temp;
	
	
	for(i=0;i<2;i++){
		for(j=0;j<4;j++){			/*行列の並び替え*/
			temp = X[3-i][j];
			X[3-i][j] = X[i][j];
			X[i][j] = temp;
		}
	}
	
	for(i=0;i<4;i++){
		for(j=0;j<4;j++)
			printf(" %d ",X[i][j]);
	printf("¥n");
	}

}