Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

逆ストリングパターンのCプログラム


文字列strが与えられた場合、私たちのタスクはその逆のパターンを印刷することです。パターンは逆の順序で増分され、文字列が完成したら、残りの場所に「*」を入力します。

文字列「abcd」を入力するのと同じように、最初の行に「a」を印刷し、次の行に「cb」を印刷し、3行目に「**d」を印刷します。

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

説明

  • 最初の行に1文字を印刷します
  • 2行目に、2文字を逆の順序で印刷します
  • 3行目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プログラム


  1. 六角形パターンのCプログラム

    整数「n」が与えられ、タスクは六角形のパターンを生成して最終出力を表示することです。 例 Input-: n=5 Output-: Input-: n = 4 Output-: 特定のプログラムで使用しているアプローチは次のとおりです − ユーザーからの数字「n」を入力します パターン全体を3つの部分、つまり上部、中央部、下部に分割します。パターンの上部をiから0に印刷し、iをn未満にして、iの値をインクリメントし続けるループiを開始します。ループを開始します。パターンの中央部分をmから0に印刷し、mをn-2未満にし、mの値をインクリメントし続けるmパターンの下部をhからre

  2. Cプログラムで行列の対角パターンで数値を印刷します。

    タスクは、対角パターンのnxnの行列を印刷することです。 nが3の場合、対角パターンで行列を印刷するのは-です。 したがって、出力は次のようになります- 例 Input: 3 Output:    1 2 4    3 5 7    6 8 9 Input: 4 Output:    1 2 4  7    3 5 8 11    6 9 12 14    10 13 15 16 この問題は、数値nを与え、n x nの行列を生成