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

โปรแกรม C แสดงเศษส่วนในรูปสตริง (Repeating Decimal)


คำอธิบายปัญหา

รับตัวเศษ (Numerator) และตัวส่วน (Denominator) จากผู้ใช้ แล้วแสดงผลลัพธ์การหารในรูปสตริง ถ้ามีทศนิยมซ้ำ ให้ล้อมด้วยวงเล็บ เช่น 1/3 = 0.(3), 5/9 = 0.(5)

ตัวอย่าง

  • 4/5 = 0.8
  • 5/9 = 0.(5)
  • 3/2 = 1.5
  • 4/7 = 0.(571428)

อัลกอริทึม

  1. จัดการเครื่องหมายลบ
  2. คำนวณส่วนจำนวนเต็ม (integer part)
  3. สำหรับเศษ: คูณ 10 หารตัวส่วน ได้เลขหลักทศนิยม
  4. เก็บเศษที่เคยเจอไว้ ถ้าเจอเศษเดิม → พบรอบซ้ำ
  5. จัดรูปแบบสตริง ใส่วงเล็บครอบส่วนที่ซ้ำ

โค้ดตัวอย่าง (สรุป)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

char* fractionToDecimal(int numerator, int denominator) {
    // จัดสรรหน่วยความจำไดนามิกสำหรับผลลัพธ์
    // ตรวจจับรอบซ้ำด้วยอาร์เรย์เก็บเศษ
    // สร้างสตริงผลลัพธ์พร้อมวงเล็บสำหรับทศนิยมซ้ำ
    // (โค้ดเต็มอยู่ในต้นฉบับ)
}

int main() {
    int n, d;
    printf("Enter numerator and denominator: ");
    scanf("%d%d", &n, &d);
    printf("Result: %s\n", fractionToDecimal(n, d));
    return 0;
}

ผลลัพธ์

4/5 = 0.8
5/9 = 0.(5)