expected unqualifiled-id before while



```c++

#include 
#include 
#include 
#include  
#define MAX 100
struct hrfs
{
    char name[10];
    float arrivetime;
    float starttime;
    float servicetime;
    float finishtime;
    int priority;
    };
    

    while(jarrivetime==p[j].arrivetime)
{
    int j=1;
        if(p[j].priority>p[i].priority)
        {
            max_priority=p[j].priority;
            i=j;
        }
        j++;
}
    k=i;
    p[k].starttime=p[k].arrivetime;finishtime=p[k].starttime+p[k].servicetime;
    p[k].run_flag=1;
    temp_time=p[k].finishtime;
    p[k].order=1;
    temp_count=1;
    while(temp_countmax_priority=0;
        for(j=0;jmax_priority)
                {
                    max_priority=p[j].priority;
                    k=j;
                }
        }
        p[k].starttime=temp_time;
        p[k].finishtime=p[k].starttime+p[k].servietime;
        p[k].run_flag=1;
        temp_time=p[k].finishtime;
        temp_count++;
        p[k].order=temp_count;
    }

void input(hrfs *p,int N)
{
    int i;
    printf("\n请输入进程名 到达时间 运行时间 优先数,例如:a 0 100 1\n");
    for(i=0;i"进程%d的信息:",i+1);
        scanf("%s%f%f%d",p[i].name,&p[i].arrivetime,&p[i].servicetime,&p[i].priority);
        p[i].starttime=0;
        p[i].finishtime=0;
        p[i].order=0;
        p[i].run_flag=0;
    }
}
void print(hrfs *p,float arrivetime,float servicetime,float starttime,int priority)
{
    int i;
    float turn_round_time=0,f1,w=0;
    float right_turn_round_time;
    printf("\n-------------------------------进程完成信息------------------------------------\n");
    printf("进程名 优先级 达到时间 运行时间 开始时间 结束时间  周转时间 带权周转时间 运行次序\n");
    for(i=0;if1=p[i].finishtime-p[i].arrivetime;
        turn_round_time+=f1;
        right_turn_round_time=f1/p[i].servietime;
        w+=(f1/p[i].servicetime);
        printf("%s %5d % % % % % % %8d\n",p[i].name,p[i].priority,p[i].arrivetime,p[i].servicetime,p[i].starttime,p[i].finishtime,f1,right_turn_round_time,p[i].order);
    }
    printf("平均周转时间=%\n",turn_round_time/count);
    printf("平均带权周转时间=%\n",w/count);
}
 
报错
18    2    [Error] expected unqualified-id before 'while'
            recipe for target 'main.o' failed
        [Error] [main.o] Error 1

while循环有问题

struct hrfs {
    char name[10];
    float arrivetime;
    float starttime;
    float servicetime;
    float finishtime;
    int priority;
    int run_flag;
    int order;
};

int main() {
    int count = 0;
    hrfs p[MAX];
    float temp_time = 0, max_priority = 0;
    int temp_count = 0;
    int i, j, k;

    // input函数
    printf("\n请输入进程名 到达时间 运行时间 优先数,例如:a 0 100 1\n");
    while (count < MAX) {
        printf("进程%d的信息:", count + 1);
        if (scanf("%s%f%f%d", p[count].name, &p[count].arrivetime, &p[count].servicetime, &p[count].priority) != 4) {
            break;
        }
        p[count].starttime = 0;
        p[count].finishtime = 0;
        p[count].order = 0;
        p[count].run_flag = 0;
        count++;
    }

    // 按到达时间从小到大排序
    for (i = 0; i < count - 1; i++) {
        for (j = i + 1; j < count; j++) {
            if (p[i].arrivetime > p[j].arrivetime) {
                hrfs temp = p[i];
                p[i] = p[j];
                p[j] = temp;
            }
        }
    }

    // 执行调度算法
    k = 0;
    p[k].starttime = p[k].arrivetime;
    p[k].finishtime = p[k].starttime + p[k].servicetime;
    p[k].run_flag = 1;
    p[k].order = 1;
    temp_time = p[k].finishtime;
    temp_count = 1;

    while (temp_count < count) {
        max_priority = 0;
        for (j = 0; j < count; j++) {
            if ((p[j].arrivetime <= temp_time) && (!p[j].run_flag) && (p[j].priority > max_priority)) {
                max_priority = p[j].priority;
                k = j;
            }
        }
        p[k].starttime = temp_time;
        p[k].finishtime = p[k].starttime + p[k].servicetime;
        p[k].run_flag = 1;
        temp_time = p[k].finishtime;
        temp_count++;
        p[k].order = temp_count;
    }

    // print函数
    float turn_round_time = 0, w = 0;
    printf("\n-------------------------------进程完成信息------------------------------------\n");
    printf("进程名 优先级 达到时间 运行时间 开始时间 结束时间  周转时间 带权周转时间 运行次序\n");
    for (i = 0; i < count; i++) {
        float f1 = p[i].finishtime - p[i].arrivetime;
        turn_round_time += f1;
        float right_turn_round_time = f1 / p[i].servicetime;
        w += (f1 / p[i].servicetime);
        printf("%s %5d % % % % % % %8d\n",

p[i].name,p[i].priority,p[i].arrivetime,p[i].servicetime,p[i].starttime,p[i].finishtime,f1,right_turn_round_time,p[i].order);
    }
    printf("平均周转时间=%\n",turn_round_time/count);
    printf("平均带权周转时间=%\n",w/count);
}