C语言问题 请帮忙解决

不知道哪里不对 请各位帮下忙
我晕…… 一直多说字数超了
第一次提问 不知道这么搞……
发个连接好了……
http://pickup.mofile.com/9670086869331540
题在连接里面……
还是没搞明白怎么直接贴上来
汗…… 他说要1000字节以内。。。
点连接 然后有个文件下载 直接点就可以了。。。
麻烦大家了

语法错误修改如下,请自行对比程序中的不同之处,并以此为准:

//------------------------------------------------

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct DRESS
{
char name[32];
char id[16];
char norm[64];
char producer[64];
char designer[64];
double fix_price;
double price;
long int number;
char date[16];
} DRESS;
int append(FILE *fp,int num);
int set_number(FILE *fp,int num);
int question(FILE *fp);
int print(FILE *fp);

int main(void)
{
int key;
FILE *fp;
int num;
key=1;
if((fp=fopen("Dress","rb"))==NULL)
{
printf("can't open file\n");
printf("create new file: press 5\n");
printf("don't create new file: press 6\n");
scanf("%d",&key);
if(key==5)
{
if((fp=fopen("Dress","wb"))==NULL)
{
printf("can't create file\n");
return 2;
}
fclose(fp);
}
else return 3;
}
while(key)
{
printf("append new dress: press 1\n");
printf("reset number: press 2\n");
printf("question information based on name: press 3\n");
printf("print sorted result: press 4\n");
printf("exit: press 0\n");
scanf("%d",&key);
switch(key)
{
case 1:
if((fp=fopen("Dress","ab"))==NULL)
{
printf("can't open file\n");
return 4;
}
printf("How many to append\n");
scanf("%d",&num);
append(fp,num);
fclose(fp);
break;
case 2:
if((fp=fopen("Dress","rb+"))==NULL)
{
printf("can't open file\n");
return 5;
}
printf("How many to reset\n");
scanf("%d",&num);
set_number(fp,num);
fclose(fp);
break;
case 3:
if((fp=fopen("Dress","rb"))==NULL)
{
printf("can't open file\n");
return 6;
}
question(fp);
fclose(fp);
break;
case 4:
if((fp=fopen("Dress","rb"))==NULL)
{
printf("can't open file\n");
return 7;
}
print(fp);
fclose(fp);
break;
default:
key=0;
}

}
return 0;
}

int append(FILE *fp,int num)
{
struct DRESS dress;
char t;
if(num<1) return 1;
printf("Please input information of each dress\n");
while(num--)
{
printf("name=");
scanf("%s",dress.name);
printf("id=");
scanf("%s",dress.id);
printf("norm=");
scanf("%s",dress.norm);
printf("producer=");
scanf("%s",dress.producer);
printf("designer=");
scanf("%s",dress.designer);
printf("fixed price=");
scanf("%lf",&dress.fix_price);
printf("number=");
scanf("%ld",&dress.number);
printf("CAUTION: Please input date like 2008.07.06(year.month.day)\n");
printf("date=");
scanf("%s",dress.date);

t=dress.date[6];
switch(t)
{
case '1':
case '2':
case '3':dress.price=0.9*dress.fix_price;
break;
case '4':
case '5':
case '6':dress.price=0.8*dress.fix_price;
break;
default:dress.price=0.7*dress.fix_price;
}

fwrite(&dress,sizeof(struct DRESS),1,fp);
}
return 0;
}

int set_number(FILE *fp,int num)
{
char id[16];
int sell;
int buy;
struct DRESS dress;
if(num<1) return 1;
while(num--)
{
printf("Please input id of the dress\n");
scanf("%s",id);
printf("How many sold\n");
scanf("%d",&sell);
printf("How many bought\n");
scanf("%d",&buy);
while(!feof(fp))
{
int offset;
fread(&dress,sizeof(DRESS),1,fp);
if(strcmp(dress.id,id)==0)
{
dress.number=dress.number-sell+buy;
offset=sizeof(DRESS);
offset=-offset;
fseek(fp,offset,1);
fwrite(&dress,sizeof(DRESS),1,fp);
return 2;
}
}
printf("Not found\n");
}
return 0;
}

int question(FILE *fp)
{
char name[32];
struct DRESS dress;
printf("Please input name\n");
scanf("%s",name);
while(!feof(fp))
{
fread(&dress,sizeof(DRESS),1,fp);
if(strcmp(dress.name,name)==0)
{
printf("name=");
printf("%s\n",dress.name);
printf("id=");
printf("%s\n",dress.id);
printf("norm=");
printf("%s\n",dress.norm);
printf("producer=");
printf("%s\n",dress.producer);
printf("designer=");
printf("%s\n",dress.designer);
printf("fixed price=");
printf("%lf\n",dress.fix_price);
printf("price=");
printf("%lf\n",dress.price);
printf("number=");
printf("%ld\n",dress.number);
printf("date=");
printf("%s\n",dress.date);
return 1;
}
}
printf("Not found\n");
return 0;
}

int print(FILE *fp)
{
struct DRESS dress[200];
int num;
int i,j;
struct DRESS dress0;
num=0;
while(!feof(fp))
{
fread(dress+num,sizeof(DRESS),1,fp);
num++;
}

for(i=1;i<num;i++)
for(j=0;j<num-i;j++)
if(dress[j].number>dress[j+1].number)
{
dress0=dress[j];
dress[j]=dress[j+1];
dress[j+1]=dress0;
}
for(i=0;i<num;i++)
{
printf("name=");
printf("%s ",dress[i].name);
printf("id=");
printf("%s ",dress[i].id);
printf("number=");
printf("%ld\n",dress[i].number);
}

for(i=1;i<num;i++)
for(j=0;j<num-i;j++)
{
if(strcmp(dress[j].date,dress[j+1].date)>0)
{
dress0=dress[j];
dress[j]=dress[j+1];
dress[j+1]=dress0;
}
}
for(i=0;i<num;i++)
{
printf("name=");
printf("%s ",dress[i].name);
printf("id=");
printf("%s ",dress[i].id);
printf("date=");
printf("%s\n",dress[i].date);
}
return 0;
}

//------------------------------------------------
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-07-07
什么题?
把电脑上的防火墙关闭就能发了。不会超的
我不会提取啊
是个exe文件,不是代码啊
第2个回答  2008-07-07
没题吗??呵呵。。太粗心了。。。
第3个回答  2008-07-07
你怎么不直接贴上来啊?
第4个回答  2008-07-07
看不到什么东西呀
相似回答
大家正在搜