c语言用数组编写按图书价格排序的代码,价格是读入文件的
时间: 2024-03-25 17:37:56 浏览: 68
以下是使用 C 语言数组实现按图书价格排序,并从文件中读取价格的示例代码:
```c
#include <stdio.h>
#define SIZE 5
void sort(float arr[], int n) {
int i, j;
float temp;
for(i=0; i<n-1; i++) {
for(j=0; j<n-i-1; j++) {
if(arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
float prices[SIZE];
FILE *fp;
int i;
fp = fopen("prices.txt", "r");
if(fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
for(i=0; i<SIZE; i++) {
if(fscanf(fp, "%f", &prices[i]) != 1) {
printf("Error reading file.\n");
return 1;
}
}
printf("Original prices: ");
for(i=0; i<SIZE; i++) {
printf("%.2f ", prices[i]);
}
printf("\n");
sort(prices, SIZE);
printf("Sorted prices: ");
for(i=0; i<SIZE; i++) {
printf("%.2f ", prices[i]);
}
printf("\n");
fclose(fp);
return 0;
}
```
这个程序首先定义了一个名为 `SIZE` 的常量,该常量定义了图书价格数组的大小。然后,程序定义了一个名为 `sort` 的函数,该函数使用冒泡排序算法将价格按升序排序。最后,程序在 `main` 函数中打开名为 `prices.txt` 的文件,读取其中的价格,调用 `sort` 函数进行排序,然后输出排序后的价格数组。
注意,在读取文件时,`fscanf` 函数返回的值应该是 1,表示成功从文件中读取了一个浮点数。如果返回值不为 1,则说明读取失败。
阅读全文