void PrintList(Node* head)
{
Node* cur = head->next;
printf_s("医院名称\t\t\t级别\t地址\t类型\t医生名字\n");
while(cur)
{
printf_s("%-12s\t%s\t%s\t%s\t%s\n", cur->data.name, cur->data.level, cur->data.address, cur->data.type,cur->data.peo);
cur = cur->next;
}
printf("\n");
}
你可以使用更长的制表符或者使用空格来对齐第二行。例如,你可以尝试将第一行中的制表符长度增加到三个,即"\t\t\t",如下所示:
void PrintList(Node* head)
{
Node* cur = head->next;
printf_s("医院名称\t\t\t级别\t地址\t类型\t医生名字\n");
while(cur)
{
printf_s("%-12s\t%s\t%s\t%s\t%s\n", cur->data.name, cur->data.level, cur->data.address, cur->data.type,cur->data.peo);
cur = cur->next;
}
printf("\n");
}
或者你可以使用空格来对齐第二行,例如:
void PrintList(Node* head)
{
Node* cur = head->next;
printf_s("医院名称 级别 地址 类型 医生名字\n");
while(cur)
{
printf_s("%-12s %s %-15s %s %s\n", cur->data.name, cur->data.level, cur->data.address, cur->data.type,cur->data.peo);
cur = cur->next;
}
printf("\n");
}
可以根据实际需要进行调整,以便使第二行对齐。
表格头也要格式化输出一下,看你自己调整,我这里只格式化了医院名称字段, 参考:
void PrintList(Node* head)
{
Node* cur = head->next;
printf_s("%-30s\t级别\t地址\t类型\t医生名字\n", "医院名称");
while(cur)
{
printf_s("%-30s\t%s\t%s\t%s\t%s\n", cur->data.name, cur->data.level, cur->data.address, cur->data.type,cur->data.peo);
cur = cur->next;
}
printf("\n");
}
不知道你这个问题是否已经解决, 如果还没有解决的话:编写一个 void sort(int *x,int n)实现将 x 数组中的 n 个数据从大到小 排序。 n 及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件 p9_1.out 中
#include<stdio.h>
#include<stdlib.h>
void BubbleSort(int* x, int n)//我这里用的冒泡排序
{
int i,j,tmp;
for (j = 0; j < n; j++)
{
for (i = 0; i < n-j; i++)
{
if (x[i] < x[i + 1])
{ //交换数据
tmp = x[i];
x[i] = x[i + 1];
x[i + 1] = tmp;
}
}
}
}
int main(void)
{
int i, a[10];
printf("请输入10个数字:");
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
BubbleSort(a, 10);
FILE* fp;
fp = fopen("p9_1.out", "w");
for (i = 0; i < 10; i++)
{
printf("%d ", a[i]);
fprintf(fp, "%d ", a[i]);
}
fclose(fp);
return 0;
}