用C语言编写一个程序,读取文本文档1.txt

用C语言编写一个程序,读取文本文档1.txt
1.txt 中有几行数据
235
456
135
数据读出后,还要把数据按第一个字符大小排序显示在屏幕上
排序后结果应该是
135
235
456
谢谢各位高手
帮忙解决一下啊
帮忙解决问题了。。只要是好用 悬赏就送,骗人是他 ×× 的混××

第1个回答  推荐于2016-06-14
刚写的:

#include<stdio.h>
#include<stdlib.h>
#define N 100
#include<string.h>
int main()
{
FILE *fp;
int i,j=0,k;
char s[N][10],temp[10];
if((fp=fopen("d:\\1.txt","r"))==NULL)
{
printf("Source file can\'t be opened!\n");
system("pause>nul");
exit(0);
}
for(i=0;!feof(fp);i++)fscanf(fp,"%s",s[i]);
k=i;
for(i=0;i<k-1;i++)
{
for(j=i+1;j<k;j++)
if(s[i][0]>s[j][0])
{
strcpy(temp,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],temp);
}
}
for(i=0;i<k;i++)printf("%s\n",s[i]);
}

如果1.txt中的数据如下:
235
456
135
akgfjs
fgfl
eor
dkfd
eoeor
459
789
324
689
fgfgh
8795
fgiot
dkfjd

运行程序后的结果如下:
135
235
324
459
456
689
789
8795
akgfjs
dkfd
dkfjd
eor
eoeor
fgfl
fgiot
fgfgh
Press any key to continue...本回答被提问者采纳
第2个回答  2007-09-19
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAXLINE 1024
int main()
{
int i=0,j,k;
char buff[256][MAXLINE];
char tmp[MAXLINE];
FILE *fp;
if((fp=fopen("c:\\1.txt","r"))==NULL)
{
printf("fopen error!\n");
exit(0);
}
while(!feof(fp))
{
fgets(buff[i++], MAXLINE, fp);
}
for(j=0;j<i-1;j++)
{
for(k=j;k<i;k++)
{
if(buff[j][0]>buff[k][0])
{
strcpy(tmp, buff[j]);
strcpy(buff[j], buff[k]);
strcpy(buff[k], tmp);
}
}
}
for(j=0;j<i;j++)
puts(buff[j]);
return 0;
}
第3个回答  2007-09-19
可以利用循环的方法依次判断出所有的数的大小,然后再依次排列出所有的数子。
记得换行啊~~~
会换行吗???
第4个回答  2007-09-19
2分么? 搞不了