MOOC哈工大2020 C言語プログラム設計精髄練兵区プログラミング問題第15週

3646 ワード

1部品数の計算(4点)
タイトル内容:
部品の山(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; }