while的里面取一次,while的时候取了一次,所以不对。后面的排序应该判断if(a[k]>a[j]) k=j;才是正确的,要遍历j到n,k取最小值的下标。注意:在这里break是不对的。
#include
#include
#include
void main()
{
FILE *fp;
char a[100];
if((fp=fopen("1.dat","r"))==NULL)
{
printf("文件打开错误");
exit(0);
}
int i=0;
a[i]=fgetc(fp);
while(a[i]!=EOF)
{
putchar(a[i]);
i++;
a[i]=fgetc(fp);
}
putchar('\n');
fclose(fp);
if((fp=fopen("2.dat","r"))==NULL)
{
printf("文件打开错误");
exit(0);
}
a[i]=fgetc(fp);
while(a[i]!=EOF)
{
putchar(a[i]);
i++;
a[i]=fgetc(fp);
}
a[i]='\0';
putchar('\n');
fclose(fp);
int n=i;
int k;
char t;
for(i=0;i
k=i;
for(int j=i+1;j
if(a[k]>a[j]) k=j;
}
if(k!=i)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
if((fp=fopen("3.dat","w"))==NULL)
{
printf("文件打开错误");
exit(0);
}
i=0;
while(i
fputc(a[i],fp);
putchar(a[i]);
i++;
}
fclose(fp);
putchar('\n');
}
#include
#include
#include
void main()
{
FILE *fp;
char a[100];
if((fp=fopen("1.dat","r"))==NULL)
{
printf("文件打开错误");
exit(0);
}
int i=0;
while(fgetc(fp)!=EOF)
{
a[i]=fgetc(fp);
putchar(a[i]);
i++;
}
putchar('\n');
fclose(fp);
if((fp=fopen("2.dat","r"))==NULL)
{
printf("文件打开错误");
exit(0);
}
while(fgetc(fp)!=EOF)
{
a[i]=fgetc(fp);
putchar(a[i]);
不知道
.....