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

โปรแกรม C แทนที่หลักตัวเลข (Replace Digit in Number)

ได้รับตัวเลข n ต้องแทนที่หลัก digit ด้วย replace

เช่น n=123, digit=2, replace=5 → ผลลัพธ์ 153

ตัวอย่าง

Input: n=983, digit=9, replace=6  Output: 683
Input: n=123, digit=5, replace=4  Output: 123 (ไม่มีหลัก 5)

แนวทาง

  • ดึงหลักหน่วย (n % 10) ตรวจสอบเท่ากับ digit ที่ต้องการแทนที่หรือไม่
  • ถ้าใช่: เพิ่ม replace * d เข้า result (d = ตำแหน่งหลัก 1, 10, 100...)
  • ถ้าไม่ใช่: เก็บค่าเดิม rem * d
  • d *= 10, n /= 10 ทำซ้ำจน n=0

อัลกอริทึม

Start
ฟังก์ชัน digitreplace(n, digit, replace):
    res = 0, d = 1
    while n != 0:
        rem = n % 10
        if rem == digit: res += replace * d
        else: res += rem * d
        d *= 10; n /= 10
    print res

main(): n=983, digit=9, replace=7 เรียก digitreplace
Stop

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

#include <stdio.h>

int digitreplace(int n, int digit, int replace) {
    int res = 0, d = 1, rem;
    while (n) {
        rem = n % 10;
        if (rem == digit) res += replace * d;
        else res += rem * d;
        d *= 10; n /= 10;
    }
    printf("%d\n", res);
    return 0;
}

int main() {
    int n = 983, digit = 9, replace = 7;
    digitreplace(n, digit, replace);
    return 0;
}

ผลลัพธ์

783