
第三問這個sort_raw函式中交換時會報錯,左邊不能為運算式,如何修改?
#include<stdio.h>
#include<string.h>
struct Date{
int year;
int month;
int day;
};
struct raw{
int num;
char *name;
float price;
int count;
struct Date date;
};
void get_raw_infor(struct raw r[10]) //1
{
int i;
printf("Please input ten piece of raw infos:\n");
for(i=0;i<10;i++){
scanf("%d",&r[i].num);
gets(r[i].name);
scanf("%f",&r[i].price);
scanf("%d",&r[i].count);
scanf("%d%d%d",&r[i].date.year,&r[i].date.month,&r[i].date.day);
}
}
void sort_raw(struct raw *p)//2
{
struct raw *temp;
int i,j,k;
float former,latter; //3這個存盤價格,進行前后比較
for(i=0;i<9;i++){
k=i;
for(j=i+1;j<10;j++){
former=(p+k)->price*(p+k)->count;
latter=(p+j)->price*(p+j)->count;
if(former<latter){
k=j;
}
}
if(k!=i){ //存在問題的部分
temp=(p+k);
(p+k)=(p+i);
(p+i)=temp;
}
}
}
int main()
{
FILE *fp;
fp=fopen("D:\\save.dat","wb");
int i;
struct raw r[10],*p=r;
get_raw_infor(r);
sort_raw(p);
if(fp==NULL){
printf("open failed");
return -1;
}
fwrite(p,sizeof(struct raw),5,fp);
fclose(fp);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/237353.html
標籤:C語言
上一篇:ZCMU 1320 蟠桃記
下一篇:求大神幫忙
