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

พิมพ์เมทริกซ์ N x M ที่แถวและคอลัมน์มีสระทั้งหมดใน C++

โจทย์

สร้างเมทริกซ์ 2 มิติขนาด n x m โดยวางเฉพาะสระ (a, e, i, o, u) ให้แถวและคอลัมน์ทุกแถวมีสระครบทุกตัว ขนาดเมทริกซ์ขั้นต่ำคือ 5x5

ตัวอย่าง

ตัวอย่าง 1: N=5, M=5

a e i o u
e i o u a
i o u a e
o u a e i
u a e i o

คำอธิบาย: จัดเรียงสระ aeiou ในแต่ละแถวและคอลัมน์ แถวแรกคือ aeiou แถวถัดไปเลื่อนซ้าย 1 ตัวเป็น eioua ต่อไป iouae...

ตัวอย่าง 2: N=3, M=4

Matrix cannot be created.

คำอธิบาย: ค่าต่ำสุดของ N และ M คือ 5

วิธีแก้ปัญหา

ตรวจสอบก่อนว่าขนาดเมทริกซ์น้อยกว่า 5x5 หรือไม่ ถ้าใช่พิมพ์ข้อความ error มิฉะนั้นให้พิมพ์ลำดับ 'aeiou' ซ้ำ โดยหมุนซ้าย 1 ตัวในแต่ละแถว

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

#include <iostream>
using namespace std;

void vowelMatrix(int n, int m) {
    if (n < 5 || m < 5) {
        cout << "Matrix cannot be created!";
        return;
    }
    string s = "aeiou";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cout << s[(j + i) % 5] << " ";
        }
        cout << endl;
    }
}

int main() {
    int n = 5, m = 5;
    vowelMatrix(n, m);
    return 0;
}

ผลลัพธ์

a e i o u e i o u a i o u a e o u a e i u a e i o