有一个问题,请个位朋友们帮助一下

img


#include

int main()
{
int i ;
float arr[i];
float sum;
float average;

do
{
    printf("Give a positive real number (negative will stop) >");
    printf("\n");
    scanf("%f", &arr[i]);
    sum += arr[i];
} while (arr[i]<0);

average = sum/i;
printf("Average is %f", &average);

return 0;

}
为什么输完第一个数就自动关闭了

i没有初始化,初始化i=0

#include <stdio.h>
int main()
{
int i = 0 ;
float arr[101];
float sum = 0;
float average;
do
{
    i++;
    printf("Give a positive real number (negative will stop) >");
    printf("\n");
    scanf("%f", &arr[i]);
    if(arr[i] < 0){
        break;
    }
    sum += arr[i];
} while (arr[i]>0);
average = sum/(i-1);
printf("Average is %f", average);
 
return 0;
}

然后输入1 2 3 -1看看