Arrays 在C语言中读取数组长度和计算折扣

Arrays 在C语言中读取数组长度和计算折扣,arrays,c,variable-length-array,Arrays,C,Variable Length Array,我有一个C到stdin产品和相应价格的程序,该程序计算并将用户输入折扣应用于所有标准价格,但是,我的代码有两个问题,如下所示: ``` int ReadArray(浮点数组[]) { int size=sizeof arr[MAX_size]/sizeof*arr; 返回大小; } int GetIntInRange(int最小值,int最大值) { int-num; 做 { printf(“>”); scanf(“%d”和&num); 如果(nummax) printf(“\n重试!输入必须介

我有一个C到stdin产品和相应价格的程序,该程序计算并将用户输入折扣应用于所有标准价格,但是,我的代码有两个问题,如下所示: ``` int ReadArray(浮点数组[]) { int size=sizeof arr[MAX_size]/sizeof*arr; 返回大小; }

int GetIntInRange(int最小值,int最大值)
{
int-num;
做
{
printf(“>”);
scanf(“%d”和&num);
如果(nummax)
printf(“\n重试!输入必须介于%d和%d\n”之间,最小值和最大值);
}
而(nummax);
getchar();
返回num;
}
浮动折扣计算(浮动折扣百分比、浮动价格)
{
浮动销售价格;
salesPrice=regPrice*(1-折扣百分比/百分之);
退货价格;
}
无效显示品牌和价格(字符*品牌[],浮动价格[],整数)
{
int i;
对于(i=0;i
我的问题#1:ReadArray函数没有正确计算数组的长度,它只返回1个数组成员的长度


问题2:计算出的折扣没有显示出来。我做错了什么?任何帮助都将不胜感激。

以下是查找函数中数组大小的诀窍:您不能。这是否回答了您的问题?好的,但是我怎么才能创建一个函数来从stdin中读取任何包含产品名称和价格的文本文件中的数组呢?@soundsfierce您只需读取数据并根据需要重新分配即可
man realloc
下面是一个简单的示例,它只需将文件读入内存,然后根据需要重新分配:
int GetIntInRange(int min, int max)
{
    int num;
    do
    {
        printf("> ");
        scanf("%d", &num);
        if (num < min || num > max)
            printf("\nRetry! Input must be in between %d and %d\n", min, max);
    }
    while (num < min || num > max);
    getchar();
    return num;
}

float DiscountCalculation(float discountPercent, float regPrice)
{
    float salesPrice;

    salesPrice = regPrice * (1 - discountPercent / HUNDRED);

    return salesPrice;
}

void ShowBrandsAndPrices(char *brands[], float prices[], int len)
{
    int i;

    for (i = 0; i < len; i++)
    {
        printf("%s\t%.2f\n", brands[i], prices[i]);
    }
}
```