MOOC哈工大2020 C言語プログラム設計精髄練兵区プログラミング問題第15週
3646 ワード
1部品数の計算(4点)
タイトル内容:
部品の山(100~200の間)があり、4つの部品のグループのいくつかのグループに分かれている場合、複数の2つの部品があり、7つの部品のグループのいくつかのグループに分かれている場合、複数の3つの部品があり、9つの部品のグループのいくつかのグループに分かれている場合、複数の5つの部品がプログラミングされて、この部品の合計数が計算されます.
2階段(4分)
タイトル内容:
階段には10段の階段があり、1段から1段、1段から2段まで上がることができ、10段の階段を全部でどれだけ歩くかをプログラミングして計算する.
ヒント:1段の階段は全部で1種類の歩き方、2段の階段は全部で2つの歩き方、3段の階段は全部で3種類の歩き方で、10段の階段が計算されるまで計算することができる.
3データをパリティ順に並べ替える(4点)
タイトル内容:
10個の数を入力し、10個の整数を昇順に並べて出力し、奇数を前、偶数を後にします.入力した10個の数が:10 9 8 7 6 5 4 3 2 1の場合、出力:1 3 5 7 8 4 8 10.(プログラミングヒント:入力された整数を格納するために2つの配列変数を使用できます.入力後、この配列をソートし、データを別の配列にコピーし、奇数をコピーしてから偶数をコピーします).
4トリプルボールグループ(4点)
タイトル内容:
3個の赤、5個の白、6個の黒から任意に8個を取り出して一組として出力する.各グループに黒球はなくてもいいですが、赤球と白球が必要です.プログラミングは以上の機能を実現します.関数でその組合せ数を返し、関数に各グループの組合せを印刷します.
関数のプロトタイプ:int Fun(void);
5同性数(4点)
タイトル内容:
プログラムを作成し,1~99の間のすべての同構造数を探し出す.1つの数がその平方数の右側に現れると、同構造数と呼ばれます.例えば、5^2=25であれば、5は同構造数である.さらに,25^2=625であれば,25は同構造数である.
タイトル内容:
部品の山(100~200の間)があり、4つの部品のグループのいくつかのグループに分かれている場合、複数の2つの部品があり、7つの部品のグループのいくつかのグループに分かれている場合、複数の3つの部品があり、9つの部品のグループのいくつかのグループに分かれている場合、複数の5つの部品がプログラミングされて、この部品の合計数が計算されます.
int main()
{
for (int i = 100; i < 200; ++i)
{
if(i % 4 == 2 && i % 7 == 3 && i % 9 == 5)
{
printf("%d
", i);
break;
}
}
return 0;
}
2階段(4分)
タイトル内容:
階段には10段の階段があり、1段から1段、1段から2段まで上がることができ、10段の階段を全部でどれだけ歩くかをプログラミングして計算する.
ヒント:1段の階段は全部で1種類の歩き方、2段の階段は全部で2つの歩き方、3段の階段は全部で3種類の歩き方で、10段の階段が計算されるまで計算することができる.
int main()
{
int step = 0, step1 = 1, step2 = 0;
for (int i = 1; i <= 10; ++i)
{
step = step1 + step2;
step2 = step1;
step1 = step;
}
printf("Result=%d", step);
return 0;
}
3データをパリティ順に並べ替える(4点)
タイトル内容:
10個の数を入力し、10個の整数を昇順に並べて出力し、奇数を前、偶数を後にします.入力した10個の数が:10 9 8 7 6 5 4 3 2 1の場合、出力:1 3 5 7 8 4 8 10.(プログラミングヒント:入力された整数を格納するために2つの配列変数を使用できます.入力後、この配列をソートし、データを別の配列にコピーし、奇数をコピーしてから偶数をコピーします).
#define N 10
void BubbleSort(int num[], int n);
void Print(int num[], int n);
int main()
{
int num[N];
printf("Input 10 numbers:
");
for (int i = 0; i < N; ++i)
{
scanf( "%d", &num[i]);
}
BubbleSort(num, N);
printf("Output: " );
Print(num, N);
return 0;
}
void BubbleSort(int num[], int n)
{
int flag, t;
for (int i = 0; i < n; i++)
{
flag = 0;
for (int j = 0; j < n - i - 1; j++)
{
if (num[j] > num[j + 1])
{
t = num[j + 1];
num[j + 1] = num[j];
num[j] = t;
flag = 1;
}
}
if(!flag)
{
break;
}
}
}
void Print(int num[], int n)
{
int count = 0, num2[n];
for (int j = 0; j < n; ++j)
{
if (num[j] % 2 == 1)
{
num2[count] = num[j];
count++;
}
}
for (int k = 0; k < n; ++k)
{
if (num[k] % 2 == 0)
{
num2[count] = num[k];
count++;
}
if (k == 9)
{
printf("%d
", num2[k]);
}
else
{
printf("%d,", num2[k]);
}
}
}
4トリプルボールグループ(4点)
タイトル内容:
3個の赤、5個の白、6個の黒から任意に8個を取り出して一組として出力する.各グループに黒球はなくてもいいですが、赤球と白球が必要です.プログラミングは以上の機能を実現します.関数でその組合せ数を返し、関数に各グループの組合せを印刷します.
関数のプロトタイプ:int Fun(void);
int Fun (void);
int main()
{
int sum;
printf("The result:
");
sum = Fun();
printf("sum=%4d
", sum);
return 0;
}
int Fun(void)
{
int i, j, k;
int count = 0;
for (i = 1; i <= 3; i++)
{
for (j = 1; j <= 5; j++)
{
for (k = 0; k <= 6; k++)
{
if (k + j + i == 8)
{
printf("red:%4d white:%4d black:%4d
", i, j, k);
count++;
}
}
}
}
return count;
}
5同性数(4点)
タイトル内容:
プログラムを作成し,1~99の間のすべての同構造数を探し出す.1つの数がその平方数の右側に現れると、同構造数と呼ばれます.例えば、5^2=25であれば、5は同構造数である.さらに,25^2=625であれば,25は同構造数である.
int main()
{
for (int i = 1; i < 99; ++i)
{
if(i == i * i % 10 || i == i * i % 100 || i == i * i % 1000)
{
printf( "m=%3d\t\tm*m=%6d
", i, i * i);
}
}
return 0;
}