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

โปรแกรม C สำหรับรูปแบบสตริงย้อนกลับ


ให้สตริง str งานของเราคือพิมพ์รูปแบบกลับด้าน รูปแบบจะเพิ่มขึ้นในลำดับที่กลับกัน และเมื่อสตริงเสร็จสิ้นให้เติม '*' ในตำแหน่งที่เหลือ

เช่นเดียวกับที่เราป้อนสตริง "abcd" ตอนนี้ในบรรทัดแรกเราต้องพิมพ์ "a" จากนั้นในบรรทัดถัดไปเราต้องพิมพ์ "cb" จากนั้นในบรรทัดที่สามเราจะพิมพ์ "**d"

ตัวอย่าง

Input: str[] = { “abcd” }
Output: a
c b
* * d

คำอธิบาย

  • ในบรรทัดแรกให้พิมพ์ 1 ตัวอักษร
  • ในบรรทัดที่สองให้พิมพ์อักขระ 2 ตัวในลำดับที่กลับกัน
  • ในบรรทัดที่สาม พิมพ์อักขระ 3 ตัวในลำดับที่กลับกัน หากสตริงน้อยกว่า 3 ให้พิมพ์อักขระและเติมช่องว่างด้วย *.
Input: str[] = {“tutorialspoint”}
Output:

โปรแกรม C สำหรับรูปแบบสตริงย้อนกลับ

แนวทางที่ใช้ด้านล่างมีดังนี้

  • เราจะสำรวจสตริงจาก i=0 และจะตรวจสอบว่า i
  • จากนั้นเราจะหาตัวแปร k และตั้งค่า k เป็น ((i*(i+1))/2)-1
  • เราจะตรวจสอบว่า ถ้า k>=n-1 จะพิมพ์ "* " มิฉะนั้นจะพิมพ์ค่าของสตริงในลำดับที่กลับกัน

อัลกอริทึม

Start
In function int reverse_it(char str[], int n)
   Step 1-> Declare and Initialize i, j=0 , k=0
   Step 2-> Loop For i=0 and i<n && k<(n-i)*2 and i++
      Set k as ((i*(i+1))/2)-1
      Loop For j=0 and j<i && k<(n-i)*2 and j++
      If k >= n-1 then,
         Print "* "
      Else
         Print "%c ",str[k]
         Decrement k by 1
      End loop
      Print new line
   End loop
In Function int main(int argc, char const *argv[])
   Step 1-> Declare and initialize string str[]
   Step 2-> Declare and Initialize size as sizeof(str)/sizeof(str[0])
   Step 3-> Call function reverse_it(str, size);
Stop

ตัวอย่าง

#include <stdio.h>
int reverse_it(char str[], int n) {
   int i, j=0 , k=0;
   for(i=0; i<n && k<(n-i)*2; i++) {
      //Assigning k
      k = ((i*(i+1))/2)-1;
      for(j=0; j<i && k<(n-i)*2; j++) {
         //will check if k is greater than the total number of characters
         //then we will print * for filling the extra characters
         if(k >= n-1)
            printf("* ");
            //print the string in reverse order
         else
            printf("%c ",str[k]);
            k--;
      }
      //for line break after reverse sequence
      printf("\n");
   }
   return 0;
}
//Main Function
int main(int argc, char const *argv[]) {
   char str[] = {"tutorialspoint"};
   int size = sizeof(str)/sizeof(str[0]);
   reverse_it(str, size);
   return 0;
}

ผลลัพธ์

หากรันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -

โปรแกรม C สำหรับรูปแบบสตริงย้อนกลับ