为什么平均价格是一串英文呐?哪里出错了?真心求解!
#include<stdio.h>
float price[100];
void input() {
FILE* pfile = fopen("E:\\Visual Studio 2022 project\\文件2题目\\s.txt", "r");
char str[100];//临时储存一本书的书名
char ch;//判断文件是否结尾
printf("读取到书本的数据:\n");
for(int n=0;;n++){
fgets(str, 100, pfile);
fscanf(pfile, "价格:%f", &price[n]);
puts(str);
for (int i = 0; i < 100; i++) {
str[i] = 0;
}//清除str中的数据
if (ch = fgetc(pfile) == EOF) {
break;
}
fseek(pfile, -1, SEEK_CUR);//由于fgetc回向后面移动一个字符,所以要用fseek函数往前移动一个字符
}
fclose(pfile);
}
void average() {
float data=0;
float sum = 0;
float number = 0;
for (int i = 0;; i++) {
if (price[i] == NULL) {
break;
}
number++;
}
for (int i = 0; i < number; i++) {
sum += price[i];
}
data = sum / number;
printf("平均价格为:%.3f", data);
}
int main() {
input();//自定义input函数读入
average();//自定义函数average算出平均价格
return 0;
}