บทนำ
ในส่วนนี้เราจะดูวิธีพิมพ์ผลรวมของสองจำนวนโดยไม่ใช้ operator ใดๆ ในโปรแกรม
ปัญหานี้ tricky เราใช้ minimum width field ของ printf() ตัวอย่างเช่น ต้องการเว้นวรรค x ช่องก่อน "Hello" ด้วย printf() เขียนได้ printf() รับ width และตัวอักษรที่จะพิมพ์ ในที่นี้ใช้ช่องว่าง
ตัวอย่างโค้ด
#include <stdio.h>
int main() {
int x = 10;
printf("%*cHello", x, ' ');
return 0;
}
ผลลัพธ์
Hello
นำฟังก์ชันนี้มาใช้หาผลรวม เรารับ x และ y เป็น input ผลรวม x + y สร้างช่องว่าง x ช่องตามด้วย y ช่อง แล้วเอาค่าที่ printf() คืนมา (ความยาวสตริง) เป็นผลลัพธ์
ตัวอย่างโค้ด
#include <stdio.h>
int add(int x, int y) {
int len;
len = printf("%*c%*c", x, ' ', y, ' ');
return len;
}
int main() {
int x = 10, y = 20;
int res = add(x, y);
printf("\nThe result is: %d", res);
return 0;
}
ผลลัพธ์
The result is: 30