Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

พิมพ์อาร์เรย์ตัวเลขที่มีหลัก 1, 2, 3 ครบในลำดับน้อยไปมาก

งานคือพิมพ์ตัวเลขในอาร์เรย์ที่มีหลัก 1, 2 และ 3 อยู่ในตัวเลข ถ้าไม่มีให้พิมพ์ -1

Input: arr[] = {320, 123, 124, 125, 14532, 126, 340, 123400, 100032, 13, 32, 3123, 1100}
Output: 123 3123 14532 100032 123400

อัลกอริทึม

START
Step 1 -> Declare array with elements of int type as arr
Step 2 -> store size of array in int n
Step 3 -> declare int variable as one, two, three
Step 4 -> call sort functions with parameters as arr and arr+n
Step 5 -> declare variable of type ostringstream as st and string as num
Step 6 -> Loop For i=0 and i

ตัวอย่างโค้ด (C++)

#include <bits/stdc++.h>
#include <string.h>
#include <sstream>
using namespace std;

int main() {
    int arr[] = {320, 123, 124, 125, 14532, 126, 340, 123400, 100032, 13, 32, 3123, 1100};
    int n = sizeof(arr)/sizeof(arr[0]);
    int one, two, three;
    sort(arr, arr+n);
    ostringstream st;
    string num;
    for (int i = 0; i < n; ++i) {
        one = two = three = -1;
        st << arr[i];
        num = st.str();
        one = num.find("1");
        two = num.find("2");
        three = num.find("3");
        if ((one != -1) && (two != -1) && (three != -1)) {
            cout << num << " ";
        }
        st.str("");
    }
}

ผลลัพธ์

123 3123 14532 100032 123400