0

この問題から抜け出すのを手伝ってください。ubuntu12.04でGCCを使用しています。このプログラムを作成して、キーボード n から 5 つの文字列を取得し、これらの文字列を画面に出力します。プログラムはコンパイルされますが、実行中にキーボードから文字列を取得しますが、最後の文字列のみを出力します。私が書いたプログラムは以下です。

void main()    
{  
    char names[10];  
    int i,j;

    for(i=0;i<5;i++)  
    {  
        printf(" Enter a name which you want to register\n");  
        scanf("%s",names);  
    }  
    for(i=0;i<5;i++)    
        printf(" the names you enter are %s\n", names);  

}
4

5 に答える 5

-1

これが私がポインタを使って書いたコードです。

#include <stdio.h>
void main()
{
   char *string[100];
   int ln;

   printf("Enter numbar of lines: ");
   scanf("%d",&ln);
   printf("\n");
   for(int x=0;x<ln;x++)
   {    
     printf("Enter line no - %d ",(x+1));
     scanf("%ms",&string[x]);  // I am using gcc to compile file, that's why using %ms to allocate memory.              
   }
   printf("\n\n");
   for(int x=0;x<ln;x++)
   {            
     printf("Line No %d - %s \n",(x+1),string[x]);  
   }

}   

二次元配列を使った別のコード

    #include <stdio.h>

    void main()
    {

    int ln;

    printf("Enter numbar of lines: ");
    scanf("%d",&ln);
    printf("\n");

    char string[ln][10];

    for(int x=0;x<ln;x++){
        printf("Enter line no - %d ",(x+1));
        scanf("%s",&string[x][0]);
    }


    for(int x=0;x<ln;x++)
    {           
        printf("Line No %d - %s \n",(x+1),string[x]);   
    }



}   
于 2018-06-03T15:09:29.863 に答える