从你提供的代码截图来看第241 行被高亮标记红色背景说明这里可能存在语法或逻辑错误。我们来仔细分析❗ 问题定位第 241 行printf(|%d\t,pr-super);这行本身语法上没有错误 ——printf格式正确pr-super是一个整型字段假设PCB结构体中super是int类型。但注意第 240 行和第 241 行之间缺少了换行符或对齐控制更重要的是✅真正的问题在于第 238 行的表头与下面各列数据不对齐看第 238 行printf( qname \t state \t super \t ndtime \t runtime );而下面的数据输出是printf(|%s\t, pr-name); // qname printf(|%c\t, pr-state); // state printf(|%d\t, pr-super); // super ← 这里开始有问题 printf(|%d\t, pr-ntime); // ndtime? 应该是 ntime? printf(|%d\t, pr-rtime); // runtime⚠️关键错误表头写的是ndtime但实际访问的是pr-ntime→变量名不一致同样表头是runtime但代码用的是pr-rtime→可能也是拼写错误或命名不一致✅ 正确做法你需要确保表头名称、字段访问名、以及数据结构定义完全一致。️ 修正建议方案一统一使用ntime和rtime修改第 238 行表头printf( qname \t state \t super \t ntime \t rtime );这样就和下面的pr-ntime,pr-rtime对应上了。方案二如果结构体里确实是ndtime和runtime那你应该把下面的访问改成printf(|%d\t, pr-ndtime); // 而不是 ntime printf(|%d\t, pr-runtime); // 而不是 rtime 额外检查点确认 PCB 结构体定义typedef struct PCB { char name[10]; char state; int super; int ntime; // 或者 ndtime? int rtime; // 或者 runtime? struct PCB *link; } PCB;请根据你的实际结构体定义调整字段名格式化输出对齐问题当前输出没有左边界对齐可以加个前导空格或竖线让表格更清晰printf(| qname | state | super | ntime | rtime |);printf(|-------|-------|-------|-------|-------|);printf(| %s | %c | %d | %d | %d |, ...);--- ## ✅ 最终推荐修正版本假设结构体字段为 ntime, rtime c void disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/ { printf( | qname | state | super | ntime | rtime | ); printf(|-------|-------|-------|-------|-------| ); printf(| %s | %c | %d | %d | %d | , pr-name, pr-state, pr-super, pr-ntime, pr-rtime); }或者保持你原来的风格只改表头printf( qname \t state \t super \t ntime \t rtime ); printf(|%s\t, pr-name); printf(|%c\t, pr-state); printf(|%d\t, pr-super); printf(|%d\t, pr-ntime); // 原来是 ntime没问题 printf(|%d\t, pr-rtime); // 原来是 rtime没问题总结❗主要错误不是第 241 行本身而是第 238 行表头与后续字段名不匹配✅纠正方法统一字段名 —— 要么改表头要么改访问语句。如果你能提供PCB结构体的定义我可以给你最精确的修正方案 是否需要我帮你重写整个disp()函数使其美观且无错