C言語で別の数値を出力する方法

C言語では、条件分岐と繰り返し処理を用いて、異なる数値の出力を行うことができます。代表的な方法は以下の2種類です。

1つ目の方法は、if文と配列を使用することです。

#include <stdio.h>

int main() {
    int nums[] = {1, 2, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9};  // 输入的数组
    int length = sizeof(nums) / sizeof(nums[0]);  // 数组长度

    for (int i = 0; i < length; i++) {
        int flag = 0;  // 标志位,用于判断是否为重复数
        for (int j = 0; j < i; j++) {
            if (nums[i] == nums[j]) {
                flag = 1;
                break;
            }
        }
        if (flag == 0) {
            printf("%d ", nums[i]);
        }
    }

    return 0;
}

if文とフラグを使用した方法

#include <stdio.h>

int main() {
    int nums[] = {1, 2, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9};  // 输入的数组
    int length = sizeof(nums) / sizeof(nums[0]);  // 数组长度
    int flag = 0;  // 标志位,用于判断是否为重复数

    for (int i = 0; i < length; i++) {
        flag = 0;  // 每次循环重置标志位
        for (int j = 0; j < i; j++) {
            if (nums[i] == nums[j]) {
                flag = 1;
                break;
            }
        }
        if (flag == 0) {
            printf("%d ", nums[i]);
        }
    }

    return 0;
}

2つのメソッドは異なる結果を出力できます。最初のメソッドでは、既存の数字を格納する配列を使用し、新しい数字を取得するたびに、配列内の既存の数字と比較します。重複が見つからなければ、出力します。2つ目のメソッドでは、重複しているかどうかを示すフラグを使用して、重複していない場合は出力します。どちらのメソッドの時間複雑度も O(n^2) です(n は配列の長さ)。

bannerAds