将以上代码变量名改变降低与源代码的重复率,写一段相同功能的代码
时间: 2023-07-10 13:36:08 浏览: 43
以下是将变量名修改后的代码,功能与原代码相同:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct{
int arrive_time;
int process_time;
} Customer;
typedef struct node{
Customer data;
struct node *next;
} QueueNode, *QueueNodePtr;
QueueNodePtr front, rear;
void enqueue(Customer e) {
QueueNodePtr new_node = (QueueNodePtr)malloc(sizeof(QueueNode));
if (!new_node) {
exit(0);
}
new_node->data = e;
new_node->next = NULL;
rear->next = new_node;
rear = new_node;
}
int dequeue(Customer *e) {
QueueNodePtr p;
if (front == rear) {
return 0;
}
*e = front->next->data;
p = front->next;
front->next = front->next->next;
if (rear == p) {
rear = front;
}
free(p);
return 1;
}
int main() {
int wait_sum1 = 0, wait_sum2 = 0;
int clock = 0;
int n_customers = 0;
int have_customer = 0;
Customer temp, e;
front = rear = (QueueNodePtr)malloc(sizeof(QueueNode));
front->next = NULL;
FILE *fp = fopen("C:\\test.txt", "r");
if (fp == NULL) {
printf("文件打开失败");
return 0;
}
have_customer = fscanf(fp, "%d %d", &temp.arrive_time, &temp.process_time);
do {
if (have_customer == 2 && front == rear) {
wait_sum1 += (temp.arrive_time - clock);
clock = temp.arrive_time;
enqueue(temp);
have_customer = fscanf(fp, "%d %d", &temp.arrive_time, &temp.process_time);
}
n_customers++;
dequeue(&e);
wait_sum2 += (clock - e.arrive_time);
clock += e.process_time;
while (have_customer == 2 && temp.arrive_time <= clock) {
enqueue(temp);
have_customer = fscanf(fp, "%d %d", &temp.arrive_time, &temp.process_time);
}
} while (have_customer == 2 || front != rear);
printf("业务员等待时间为 %d\n客户平均等待时间为 %f", wait_sum1, (float)wait_sum2 / (float)n_customers);
return 0;
}
```
注意,这里修改了变量名,但是保留了原来的程序逻辑和算法。