程序在printArray

时间:2016-04-04 01:56:36

标签: c

由于某种原因,printArray使程序崩溃。它应该在二维数组中用15个用户定义的直径值来计算流速,然后生成一个表。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    float q, a, d, v, array[5][3];
    int rows, columns;

    printf("Enter: ");
    scanf("%f",&v);

    for (rows = 0; rows < 5; rows++ )
    {
    for ( columns = 0; columns < 3; columns++)
    {
        printf("Enter value for %d, %d",rows,columns);
        scanf("%d",&array[rows][columns]);
    }
    }
    printArray(array[5][3], v);

}

void printArray(float myArray[][3], float v)
{
    int i, rows, columns;
    float q, a;

    for (rows = 0; rows < 5; rows++ )
    {
    for ( columns = 0; columns < 3; columns++)
    {
        a=(3.14*(myArray[rows][columns]*myArray[rows][columns]))/4;
        q=a*v;
        printf("Diameter: %f Flow rate: %f\n",myArray[rows][columns],q);
    }
    }
    printf("\n");
}

1 个答案:

答案 0 :(得分:1)

printArray(array[5][3], v);

array[5][3]表示第6行和第4列中的元素。这里有两个明显的问题:

  • 数组没有6行4列。
  • 该函数希望您传递(指向)整个数组,而不仅仅是它的一个元素。

将其更改为:

printArray(array, v);