#include
#include
#define m 80
#define n 20
#define bool int
#define true 1
#define false 0
typedef
struct tagseat
seat;
typedef
struct taginterval
interval;
interval* createlist(); //建立座位鍊錶
void showlist(interval *phead);
bool getrequest(int *p); //得到每次購票的數量資訊
void buyseat(int i); //買票
void outputresult(int * seatnum, int count); //將售票資訊輸入到檔案中
void main()
else
}interval* createlist()
else
//間隔號為雙號
}return phead;
}void showlist(interval *phead)
printf("\n");
p = p->next;
}printf("第 %d 個間隔的座位號為:\n",p->intervalnum);
for(i = 0;i < 4; i++)
printf("\n");
}void buyseat(interval* phead,int i)
; //儲存座位號的陣列
int count = 0; //計數
interval* p = phead;
if(i == 1) //買一張票
}p = p->next}}
if(i == 2)
}else
} //優先售相鄰的座}}
}p = phead;
if(count == 0)//沒有相鄰座票}}
}}
}//一次購買兩張票
if(i == 3)
if(p->seat[j+1].issell == false && p->seat[j+5].issell == false)
if(p->seat[j+4].issell == false && p->seat[j+5].issell == false)
}if(j == 1)}}
}}
p = phead;
if(count == 0)//沒有同一間隔座票}}
}}
} //一次購買3張票
if(i == 4)
//同一間隔的票
}p = p->next;
}p = phead;
if(count == 0)}}
}}
}//一次性購買4張票
}bool getrequest(int *p)
; static
bool isfirst = true;
int i;
if(isfirst)
isfirst = false;
fclose(fp);
}if(inputdata[nindex] == 0 || nindex == m) return
false;
*p = inputdata[nindex++];
return
true;
}void outputresult(int * seatnum, int count)
fprintf(fp,"\n");
fclose(fp);
}
歡迎使用CSDN markdow
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...
歡迎毛毛與妞妞使用CSDN markdown編輯器
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...
歡迎使用CSDN markdow1n編輯器
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...