-3

ユーザーが n 個の要素を持つ配列を取得し、値が 5 の倍数である要素を見つける C プログラムを作成します。これらの要素は、次のように値とともに画面に表示されます。 V[i]=a ,V[j] = b、....私のコード:

#include <stdio.h>
int main ()

    {
        int n,i,sh=0;
        int v[100];
        printf ("Please write n:");
        scanf("%d",&n);
        for (i=0;i<n;i++)
        { printf ("\n Write the element %d",i);
        scanf("%d",&v[i]);
        }
        if (v[i] %5)
        printf("The element is a multiple of 5",&sh);

        return 0;
    }

それは完全にコンパイルされますが、これを実行して要素を書き込むと、何もしません..どこが間違っていますか?

編集 :

Yes,here it is :
Please write n: 4
Enter value 0: 10
Enter value 1 : 9
Enter value 2 : 20
Enter value 3:14

V[0]=10,V[2}=20
4

5 に答える 5

2

コードに 3 つのエラーがあります。

  • 最初if ( v[i] % 5 )は最後にループの外側にあり、 に対して一度だけ試行しi = n+1ます。境界外の問題が発生します。

  • の倍数を検索する5ので、条件は になりますif ( v[i] % 5 == 0 )

  • あと、あなたprintfも間違っています。

    printf("The element is a multiple of 5",&sh);
    //                                     ^^^^
    

とはsh? なぜあなたはそれを使いたいのprintfですか?フォーマット文字列には引数が必要ないようです。

コードは次のようになります。

for ( i=0; i < n; i++ )
{
    printf( "\n Write the element %d", i );
    scanf( "%d", &v[i] );
    if ( v[i] % 5 == 0 )
        printf( "The element is a multiple of 5" );
}

編集 :

出力例では、別のループを実行する必要があるかもしれません:

#include <stdio.h>

int main ()
{
    int n, i, sh = 0; // I still don't for what sh is used ...
    int v[100];

    printf ("Please write n:");
    scanf("%d",&n);

    // Get the values
    for ( i=0; i < n; i++ )
    {
        printf( "\n Write the element %d", i );
        scanf( "%d", &v[i] );
    }

    // Print the values multiple of 5
    for ( i=0; i < n; i++ )
    {
        if ( v[i] % 5 == 0 )
            printf( "V[%d]=%d\n", i, v[i] );
    }

    return 0;
}

HEREは動作例です。

于 2013-08-15T09:06:47.193 に答える
2
  1. IF ステートメントがループ内にない
  2. printf("The element is a multiple of 5",&sh);- 何か足りない?(なぜ &sh なのか?)
  3. IF ステートメントは完全に正しくありません

どのように編集しますか:

 1|    #include <stdio.h>
 2|
 3|    int main ()        
 4|    {
 5|        int n,i,sh=0;
 6|        int v[100];
 7|        printf ("Please write n:");
 8|        scanf("%d",&n);
 9|        for (i=0;i<n;i++)
10|        { 
11|             printf ("\n Write the element %d",i);
12|             scanf("%d",&v[i]);
13|             
14|             if ((v[i] % 5) == 0)
15|                 printf("The %d. element %d is a multiple of 5", i+1, v[i]);
16|        }
17|
18|        return 0;
19|    }

変数shの目的は何ですか? または、作者はそれを何に使いたかったのですか?

于 2013-08-15T09:07:38.707 に答える
0

int n、i、sh = 0;

//array to hold the numbers
int N[100];

//count of numbers
printf ("Enter the NUMBER count :");
scanf("%d",&n);

// 入力を配列で取得 for (i=0;i

//check for the divisibility
for( i = 0; i < n; i++ )
   if( N[i] % 5 == 0 )
       printf( "The element at %d is %d, divisible by 5\n", i, N[i] );

return 0;

}

于 2013-08-15T14:02:43.043 に答える
0
{
    int n,i,sh=0;
    int v[100];
    printf ("Please write n:");
    scanf("%d",&n);
    for (i=0;i<n;i++)
    { printf ("\n Write the element %d",i);
    scanf("%d",&v[i]);
    }

    /// now go back through the array
    //
    for( i = 0; i < n; i++ )
       if( v[i] % 5 == 0 )
           printf( "The element at %d is %d, divisible by 5\n", i, v[i] );

    return 0;
}
于 2013-08-15T09:29:27.210 に答える