69,368
社区成员
发帖
与我相关
我的任务
分享
void query_big_info()
{
float x,y;
puts("输入价格范围x和y(中间用空格隔开)");
scanf("%f%f",&x,&y);
int i;
struct Info *head=NULL,*tmp=NULL;
for (i=0; i<30; i++)
{
if(info[i].total>=x&&info[i].total<=y)
{
if(!tmp)
{
tmp=&info[i];
head=tmp;
}
else
{
tmp->next=&info[i];
tmp=tmp->next;
}
}
}
tmp->next = NULL;
tmp = head;
printf("序号 种类 单价 数量 总价 支付 找零 卡号 购前 购后\n");
while(tmp)
{
printf("%4.4d %s %.2f %.2f %.2f %.2f %.2f %d %.2f %.2f",
tmp->id, fruit[tmp->ftype].fname, tmp->price, info->fnum,
tmp->total, tmp->pay, tmp->ret, tmp->cardid, tmp->befpay,
tmp->aftpay);
printf("时间: %d:%d\n", tmp->hour, tmp->minute);
/*
printf("%4.4d %s %.2f %.2f %.2f %.2f %.2f %d %.2f %.2f",
info[i].id,
fruit[info[i].ftype].fname,
info[i].price,
info[i].fnum,
info[i].total,
info[i].pay,
info[i].ret,
info[i].cardid,
info[i].befpay,
info[i].aftpay);
printf("时间: %d:%d\n",info[i].hour,info[i].minute);
*/
tmp = tmp->next;
}
}
参考一下吧;
另外,自己数一下%d,%f个数和后面的参数是否是一一对应的,包括参数类型。
fscanf(fp,"%d%s%f%f%f%f%d%f%f%d%d",
&info[i].id,
fname,
&info[i].fnum,
&info[i].total,
&info[i].pay,
&info[i].ret,
&info[i].cardid,
&info[i].befpay,
&info[i].aftpay,
&info[i].hour,
&info[i].minute
);
scanf("%f%f",&x,&y);
float类型应该以%f接收吧,double采用%lf