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

C โปรแกรมพิมพ์ตัวเลขตั้งแต่ 1 ถึง N โดยไม่ต้องใช้เซมิโคลอน


ที่นี่เราจะเห็นวิธีแก้ปัญหาที่ยุ่งยาก เราจะพิมพ์ตัวเลขตั้งแต่ 1 ถึง N โดยไม่ต้องใช้เครื่องหมายอัฒภาค

เราสามารถแก้ปัญหานี้ได้สองวิธี วิธีแรกคือวิธีวนซ้ำ และวิธีที่สองเป็นวิธีแบบเรียกซ้ำ

วิธีที่ 1

ฟังก์ชัน printf() จะคืนค่าความยาวของสตริง ดังนั้นจึงเป็นค่าที่ไม่ใช่ศูนย์ เราสามารถดำเนินการตามตรรกะ AND โดยมีเงื่อนไขในการพิมพ์ผลลัพธ์ แล้วเพิ่มมูลค่าของตัวนับ

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

#include<stdio.h>
#define N 20
int main(int num, char *argv[]) {
   while (num <=N && printf("%d ", num) && num++) {
      //The while body is empty.
   }
}

ผลลัพธ์

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

วิธีที่ 2

ในวิธีที่สอง เราจะดูวิธีการทำงานเดียวกันโดยใช้การเรียกซ้ำ เราจะผ่านข้อโต้แย้งด้วยฟังก์ชันหลัก หลักนี้จะถูกเรียกซ้ำ

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

#include<stdio.h>
#define N 20
main(int val) {
   if (val <=N && printf("%d ", val) && main(val + 1)) {
      //Body is empty
   }
}

ผลลัพธ์

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20