0

私はしばらくこの宿題に取り組んでいます。そして、私はそれの何が悪いのかを見つけることができないようです.

私の質問は、このプログラムを実行するたびにセグメンテーション違反エラーが発生し続けるのはなぜですか.

/* Description: A program that takes an input array argument with type double values and displays a table of those inputs and their absolute values.
*/

...

int main() /* Main Function */
{
    /* Variables */

    int size=5,n;
    double value[n];
    double table;

    /* Instructions and Input */

    for(n=0;n<size;n++){
            printf("\nPlease enter value #%d:\n",n);
            if(n=size-1){printf("\nPlease enter the last value.\n");}
            scanf("%lf",&value[n]);
    }

    /* Recalling the Function and Output */

    printf("\nValue\t|Value|\n"); /* Table Header */
    table=abs_table(value[n],size); /*Absolute Value Table */

    return 0;
}

double abs_table(double value, int size) /* Absolute Value Function */
{
    int i,j; /* Counter Variables */
    double v;

    for(j=1;j<=size;j++){ /* For the Number of rows */
            for(i=0;i<=size;i++){ /* For the number of columns */
                            v = abs(value); // For the absolute values */
                            printf("\n%g\t%g\n",value,v);
                    }
    printf("\n"); /* To make sure the rows display on their own line */
    }

    return;
}
4

3 に答える 3

1

コードにいくつかのエラーがあります:

エラー 1: main() で宣言しdouble value[n];ます。double value[size];

エラー 2: main() ステートメントを次のif(n=size-1)ように変更する必要がありますif(n==size-1)

エラー 3: main() で関数を呼び出しますtable=abs_table(value[n],size);table=abs_table(value,size);

Error4: 関数を定義するdouble abs_table(double value, int size){...}必要がありますdouble abs_table(double value[], int size){...}

Error5: 関数内abs_tableで、ここに何を表示しようとしているのか実際にはわかりません。1 つのスポットは、変数iが 0 から size-1 まで実行される必要があること、別のスポットは、何かを返す必要があることです。

于 2013-10-28T21:29:48.913 に答える