void all()//6.总分统计 { int allchengji=0;//总成绩 float allxuefen=0;//总学分 float avechengji;//平均分 if((fp=fopen("stud.dat","wb"))==NULL) { printf("不能打开此文件"); exit(1); } printf("序号 姓名 总学分 总成绩 平均分\n"); for(i=0;i<m;i++) { fread(&n[i],sizeof(struct student),1,fp); printf(" %d %s ",i+1,n[i].name); allchengji=n[i].math+n[i].cyuyan; allxuefen =n[i].xuefen[0]+n[i].xuefen[1]; avechengji=allchengji/2; printf("%.2f %d %.2f\n",allxuefen,allchengji,avechengji); } fclose(fp); }这个人该如何让他输出后可以对齐
时间: 2024-03-24 17:39:09 浏览: 124
您可以使用`printf`函数的格式化输出控制符来对齐输出。以下是一个示例代码:
```
void all() {
int allchengji = 0; // 总成绩
float allxuefen = 0; // 总学分
float avechengji; // 平均分
if ((fp = fopen("stud.dat", "rb")) == NULL) {
printf("不能打开此文件");
exit(1);
}
printf("序号\t姓名\t总学分\t总成绩\t平均分\n");
for (i = 0; i < m; i++) {
fread(&n[i], sizeof(struct student), 1, fp);
allchengji = n[i].math + n[i].cyuyan;
allxuefen = n[i].xuefen[0] + n[i].xuefen[1];
avechengji = allchengji / 2;
printf("%d\t%s\t%.2f\t%d\t%.2f\n", i + 1, n[i].name, allxuefen, allchengji, avechengji);
}
fclose(fp);
}
```
在上面的代码中,使用了`\t`来实现输出对齐。其中,`\t`是制表符,可以在输出中添加空白字符,使得输出更加整齐。另外,`%.2f`表示输出一个浮点数,并保留两位小数。`%d`表示输出一个整数。
阅读全文