Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình C cho mẫu chuỗi đảo ngược

Cho một chuỗi str, nhiệm vụ của chúng ta là in mẫu đảo ngược của nó. Mẫu sẽ tăng dần theo thứ tự đảo ngược và khi chuỗi hoàn thành, hãy điền dấu ‘*’ vào các vị trí còn lại.

Giống như chúng ta nhập một chuỗi “abcd”, bây giờ ở dòng đầu tiên chúng ta phải in “a”, sau đó ở dòng tiếp theo chúng ta phải in “cb” và sau đó ở dòng thứ ba chúng ta sẽ in “** d”.

Ví dụ

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

Giải thích -

  • Trong dòng đầu tiên, hãy in 1 ký tự
  • Ở dòng thứ hai, in 2 ký tự theo thứ tự ngược lại
  • Ở dòng thứ ba In 3 ký tự theo thứ tự ngược lại, nếu chuỗi nhỏ hơn 3 thì in các ký tự và điền vào khoảng trống bằng *.
Input: str[] = {“tutorialspoint”}
Output:

Chương trình C cho mẫu chuỗi đảo ngược

Phương pháp được sử dụng bên dưới như sau -

  • Chúng tôi sẽ duyệt qua chuỗi từ i =0 và sẽ kiểm tra xem i
  • Sau đó, chúng ta sẽ lấy một biến k và Đặt k là ((i * (i + 1)) / 2) -1
  • Chúng tôi sẽ kiểm tra Nếu k> =n-1 thì In "*" còn không thì sẽ in giá trị của chuỗi theo thứ tự ngược lại

Thuật toán

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

Ví dụ

#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;
}

Đầu ra

Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Chương trình C cho mẫu chuỗi đảo ngược