bugfix> c > 投稿

ステートメントを印刷したい n ループを使用せずに回。

#include<stdio.h>
#include<conio.h>
void show(char *n,int count);
void main()
{
    int x=10;
    char name[20]="zeeshann";
    clrscr();
    show (name,10);
    getch();
}
void show(char *n,int count)
{
    while(count>0)
    {
        printf("%s\n",n);
        count--;
    }
}

これは、whileループを使用して文字列を10回出力するコードです。

使用せずに10回印刷するにはどうすればよいですか while または任意のループ?

回答 3 件
  • show()メソッドからwhileループを削除し、if条件を使用します。

    if条件がfalseになるまで、メソッドを継続的に呼び出します。

    void show(char *n,int count)
    {
        if(count>0)
        {
            printf("%s\n",n);
            count--;
            show(n,count);
        }
    }
    
    

    理解を深めるために、フルコード、

    #include<stdio.h>
    #include<conio.h>
    void show(char *n,int count);
    void main()
    {
        int x=10;
        char name[20]="zeeshann";
        clrscr();
        show (name,10);
        getch();
    }
    void show(char *n,int count)
    {
        if(count>0)
        {
            printf("%s\n",n);
            count--;
            show(n,count);
        }
    }
    
    

  • #include <stdio.h>
    #include <setjmp.h>
    jmp_buf buf;
    int main() {
       int x = 1;
       setjmp(buf); //set the jump position using buf
       printf("KrishnaKanth\n"); // Prints a name
       x++;
       if (x <= 5)
          longjmp(buf, 1); // Jump to the point located by setjmp
          
          return 0;
    }
    
    

    出力は次のとおりです。

    KrishnaKanth
    KrishnaKanth
    KrishnaKanth
    KrishnaKanth
    KrishnaKanth
    
    

  • それはまだループですが、これはよりクリーンなソリューションであるforループで行うことができます

    void show(char *n,int count)
    {
        for(int i = 1; i <= count; i++) printf("%s\n",n)
    }
    
    
    

あなたの答え