(1)2つの整数a, bを入力すると,その数を含めて,2つの数の間の整数の和を求めるプログラムを作成せよ.
ただし,a, b どちらが大きいかは,わからない.また,aとbは同じ値でないとする.
#include <stdio.h>
void main()
{
int a, b, i, sum;
sum = 0;
printf("a=");
scanf("%d", &a);
printf("b=");
scanf("%d", &b);
if(a < b){
for(i=a;i<=b;i++){
sum += i;
}
} else {
for(i=b;i<=a;i++){
sum += i;
}
}
printf("2つの数の間の整数の和は%dです.¥n", sum);
}
(2)m枚のカードからn枚選んで順に並べる場合の数(順列)を,自然数m,nを入力すると答えるプログラムを作成せよ.
#include <stdio.h>
void main()
{
int m, n, i, junretsu;
junretsu = 1;
printf("m=");
scanf("%d", &m);
printf("n=");
scanf("%d", &n);
for(i=m-n+1;i<=m;i++){
junretsu *= i;
}
printf("m枚のカードからn枚選んで順に並べる場合の数は%dです.¥n", junretsu);
}
(3)キーボードから入力した整数a,bの割り算 a ÷ b の商とあまりを引き算のみを用いて計算し,画面に表示するプログラムを作成せよ.
#include <stdio.h>
void main()
{
int a, b, i, shou;
shou = 0;
printf("a=");
scanf("%d", &a);
printf("b=");
scanf("%d", &b);
for(i=a;i>=b;i-=b){
shou++;
}
printf("a ÷ b の商は%d,あまりは%dです.¥n", shou, i);
}
(4)4*4の二次元配列 { {1, 0, 2, 4 }, {2, 0, 4, 8 }, {4, 0, 9, 6 }, {8, 1, 9, 2 } } の中身を上下逆転するプログラムを作成せよ.
#include <stdio.h>
void main()
{
int a[4][4] = { {1, 0, 2, 4 },
{2, 0, 4, 8 },
{4, 0, 9, 6 },
{8, 1, 9, 2 } };
int i, j, tmp;
printf("並べ替え前¥n");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
printf("%d ", a[i][j]);
}
printf("¥n");
}
printf("¥n");
for(i=0;i<4/2;i++){
for(j=0;j<4;j++){
tmp = a[i][j];
a[i][j] = a[3-i][j];
a[3-i][j] = tmp;
}
}
printf("並べ替え後¥n");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
printf("%d ", a[i][j]);
}
printf("¥n");
}
}