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

反復関数を使用して、指定された数値をC言語で逆の順序で出力します


問題

反復関数、つまりCプログラミング言語を使用したwhileループを使用して、指定されたものを逆の順序で印刷するにはどうすればよいですか?

解決策

これまで、文字列関数を使用して文字列関数を使用せずに文字列を反転する方法を見てきましたが、次に、事前定義された関数を使用せずに数値を反転する方法を見てみましょう-

アルゴリズム

入力 −実行時に番号を付けます

Step 1: Declare the variable number,reverse
Step 2: Initialize reverse= 0
Step 3: while number>0
        (a) reverse=reverse*10 + number%10;
            reverse = reverse*10 + num%10;
        (b) Divide number by 10
Step 4: return reverse

#include <stdio.h>
int reverse(int number){
   int reverse = 0;
   while(number > 0){
      reverse = reverse*10 + number%10;
      number = number/10;
   }
   return reverse;
}
int main(){
   int number;
   printf("enter a number:");
   scanf("%d",&number);
   printf("Reverse of no. is %d", reverse(number));
   getchar();
   return 0;
}

出力

enter a number:356789
Reverse of no. is 987653

  1. リンクリストの最後のkノードを逆の順序でC言語の再帰的アプローチで印刷します

    タスクは、再帰的アプローチを使用して、リンクリストの最後からk個のノードを印刷することです。 再帰的アプローチとは、関数が呼び出しが行われるまで何度も何度も呼び出して、結果を保存するアプローチです。 たとえば、リストにノード29、34、43、56、88が含まれていて、kの値が2である場合、出力は56や88などの最後のkノードになります。 例 Linked List: 29->34->43->56->88 Input: 2 Output: 88 56 指定されているように、リストをトラバースする回数を追跡しながらリストを最後からトラバースする再帰的アプローチを

  2. リンクリストの代替ノードをC言語で印刷する(反復法)

    この問題では、プログラムは、反復法を使用して、指定されたリンクリストから代替を印刷する必要があります。 反復法は、条件が値1またはtrueになるまで実行されるループを一般的に使用する方法です。 たとえば、リストにはノード29、34、43、56、88が含まれ、出力には29、43、88などの代替ノードが含まれます。 例 Input: 29->34->43->56->88 Output: 29 43 88 アプローチは、最後のノードまでリスト全体をトラバースすることです。一方、1にインクリメントされるカウンター変数をトラバースすることができ、ユーザーの選択に応じて