数值存储在"score_ 201"文件中。
(1)定义void sort(float *sco,int n)函数,功能:
从小到大排序。
(2)定义void swap(float *x ,float *y)函数,功能:交换两个变量值。
(3)定义int input(float sco[)函数,功能:
从文件导入数据。返回值为文件中所存储的有效数据个数。程序完成对文件中的数据处理后,从小到大输出。
一个实现,供参考:
#include <stdio.h>
#include <string.h>
//读取文件
int input(float * sco){
char path[25]="score_201.txt";
FILE * fp = fopen(path,"r"); //打开文件
if(fp==NULL){
printf("打开文件失败,程序退出!\n");
return 0 ;
}
int i=0;
while(feof(fp)==0){ //读取文件的浮点数
fscanf(fp,"%f ",&sco[i]);
i++;
}
return i;
}
//从小到大排序
void sort(float * sco,int n){
int j;
int i;
float temp;
for(i=0;i<n-1;i++){
for(j=i;j<n;j++){
if(sco[i]>sco[j]){
temp=sco[i];
sco[i]=sco[j];
sco[j]=temp;
}
}
}
}
//交换两个变量的值
void swap(float *x,float *y){
float temp=*x;
*x=*y;
*y=temp;
}
int main(){
float sco[100];
int n =input(sco);
printf("排序前:\n");
int i;
for(i=0;i<n;i++){
printf("%.2f ",sco[i]);
}
sort(sco,10);
printf("\n排序后:\n");
for(i=0;i<n;i++){
printf("%.2f ",sco[i]);
}
float * x =&sco[0];
float * y =&sco[3];
swap(x,y) ;
printf("\n交换第一个数和第四个数:\n");
for(i=0;i<n;i++){
printf("%.2f ",sco[i]);
}
return 0;
}
score_201.txt
3.2 4.5 1.3 5.9 1.6 7.9 6.5 11.2 2.2 9.9
运行结果: