求助:帮我检查程序。
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define count 5
void sort(struct sell_record a[],int num);
void writefile(struct sell_record a[]);
struct sell_record
{
char name[10];
float incc;
};
void main()
{
struct sell_record sell[count];
int i=1;
char con='y';
printf("北京市二手房交易信息录入\n");
while (con=='y'||con=='Y')
{
printf("输入第%d个二手交易信息",i);
printf("输入卖房人姓名:");
scanf("%s",&sell[i].name);
printf("输入卖房收入:");
scanf("%f",&sell[i].incc);
i++;
printf("是否继续输入(y/n)");
getchar();
scanf("%c",&con);
}
sort(sell,count);
for(i=0;i<count;i++)
{
printf("%s\t%.2f\n",&sell[i].name,&sell[i].incc);
}
writefile(sell);
}
void sort(struct sell_record a[],int num)
{
int i,j,noswap;
struct sell_record temp;
for(i=0;i<num-1;i++) {
noswap=1;
for(j=num-1;j>i;j--)
if (a[j].incc>a[j-1].incc)
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
noswap=0;
}
if (noswap)
break;
}
}
void writefile(struct sell_record a[])
{
FILE *fp;
int i;
fp=fopen("1.dat","wb");
if (fp==NULL)
printf("can not open file!");
for(i=0;i<count;i++)
{
fwrite(&a[i],sizeof(struct sell_record),1,fp);
fclose(fp);
}
}
这是一个简单程序。从键盘输入卖房信息,然后按收入降序排序,然后将卖房信息写入文本文件。
但是,虽编译成功,但输入完信息后,排序后的收入全写0.00了,并且写入文本文件的是乱码的。
帮我改改好吗?谢谢!