未完成
#include <stdio.h> #include<string.h> /*解题思路: 1.对 a.txt 文件进行内容读取 2.把文件中的数存储到数组中 3.对数组进行降序排序 4.删除重复的数 5.输出对应的第 k 个大小的数*/ //真题2021 //文件流读取文件内的数字,输出第k个大小的数字 int main() { FILE* fp; int data, t, temp,i,j; int num; int a[1000]; char fileName[20]; char c; num = 0; i = 0; j = 0; t = 0; strcpy(fileName,"text.txt"); fp = fopen(fileName,"r+"); if (NULL==fp) { printf("error"); //exit(0); } /*while (c = fgetc(fp) != EOF)//读取文件中的连续的数字 { printf("c:%c\n",c); if (c > '0' && c <= '9')num++; if(c>'1' && c<='9') { data=(int)c; printf("data:%d ", data); t = 1; } else { t = 0; } if (t==1) { a[num] = data;//读到内存 num++; printf(a[num]); } }*/ for (i = 0; i < num; i++) for ( j = 0; j < num-i-1; j++) if (a[j] < a[j + 1]) { t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } printf("文件*有数字:%d",num-1); for (i = 0; i < num; i++) //4、删除重复大小的数 for (j = i+1; j < num ; j++) if (a[i] < a[j]) { for (temp = j; temp < num; temp++) a[temp] = a[temp + 1]; j--; num--;//5数组长度减一 } printf("删除重复数字后位:%d"); fclose(fp); return 0; }