怎么用C语言输出表格
5个回答
2013-04-12
展开全部
/*首先我们利用用C语言程序找出┌┍┎┏┑┐┒┓─├┝┞┟┠┡┢┣┬┭┯┮┰┱┲┳┼┽┾┿╁╀╂这样的字符对应的ASC码值在179到224之间 */
void main()
{
int i,j;
for(i=179;i<224;i++)
{
printf("|%d,%c| ",i,i);
if (i%8==0) printf("\n\n");/*换行 让他们对齐,便于我们查看*/
}
getch();/*利用这个函数我们可以找到制表符号所对应的数值*/
} /*C语言制做表格利用┌┍┎┏┑┐┒┓─├┝┞┟┠┡┢┣┬┭┯┮┰┱┲┳┼┽┾┿╁╀╂╃ 对应的ASC码*/
void main()
{
int i,j;
printf("%c",201);/*画第一条表格线*/
for(i=0;i<10;i++)
printf("%c",205);
printf("%c",209);
for(i=0;i<8;i++)
printf("%c",205);
printf("%c",203);
for(i=0;i<15;i++)
printf("%c",205);
printf("%c\n",187); printf("%c",186); /*填入数据*/
printf("1234567890");
printf("%c",179);
printf("12345678");
printf("%c",186);
printf("123456789012345");
printf("%c\n",186); printf("%c",204); /*画第二条表格线*/
for(i=0;i<10;i++)
printf("%c",205);
printf("%c",216);
for(i=0;i<8;i++)
printf("%c",205);
printf("%c",206);
for(i=0;i<15;i++)
printf("%c",205);
printf("%c\n",185); printf("%c",186); /*填入数据*/
printf(" Li Xiang ");
printf("%c",179);
printf(" 22 ");
printf("%c",186);
printf(" LIAONING ");
printf("%c\n",186); printf("%c",204); /*画第三条表格线*/
for(i=0;i<10;i++)
printf("%c",205);
printf("%c",216);
for(i=0;i<8;i++)
printf("%c",205);
printf("%c",206);
for(i=0;i<15;i++)
printf("%c",205);
printf("%c\n",185); printf("%c",186); /*填入数据*/
printf(" ");
printf("%c",179);
printf(" ");
printf("%c",186);
printf(" ");
printf("%c\n",186); printf("%c",200); /*画最后条表格线*/
for(i=0;i<10;i++)
printf("%c",205);
printf("%c",207);
for(i=0;i<8;i++)
printf("%c",205);
printf("%c",202);
for(i=0;i<15;i++)
printf("%c",205);
printf("%c\n",188); getch();/*利用这个函数我们可以找到制表符号所对应的数值*/
}
/*这只是个例子,通过他我们发现除了第一条和最后一条不一样外,其他的中间都是一样的,这样我们可以把他写成函数的形式,具体方法你可以自己试试,若有不懂,可以加我好友*/
void main()
{
int i,j;
for(i=179;i<224;i++)
{
printf("|%d,%c| ",i,i);
if (i%8==0) printf("\n\n");/*换行 让他们对齐,便于我们查看*/
}
getch();/*利用这个函数我们可以找到制表符号所对应的数值*/
} /*C语言制做表格利用┌┍┎┏┑┐┒┓─├┝┞┟┠┡┢┣┬┭┯┮┰┱┲┳┼┽┾┿╁╀╂╃ 对应的ASC码*/
void main()
{
int i,j;
printf("%c",201);/*画第一条表格线*/
for(i=0;i<10;i++)
printf("%c",205);
printf("%c",209);
for(i=0;i<8;i++)
printf("%c",205);
printf("%c",203);
for(i=0;i<15;i++)
printf("%c",205);
printf("%c\n",187); printf("%c",186); /*填入数据*/
printf("1234567890");
printf("%c",179);
printf("12345678");
printf("%c",186);
printf("123456789012345");
printf("%c\n",186); printf("%c",204); /*画第二条表格线*/
for(i=0;i<10;i++)
printf("%c",205);
printf("%c",216);
for(i=0;i<8;i++)
printf("%c",205);
printf("%c",206);
for(i=0;i<15;i++)
printf("%c",205);
printf("%c\n",185); printf("%c",186); /*填入数据*/
printf(" Li Xiang ");
printf("%c",179);
printf(" 22 ");
printf("%c",186);
printf(" LIAONING ");
printf("%c\n",186); printf("%c",204); /*画第三条表格线*/
for(i=0;i<10;i++)
printf("%c",205);
printf("%c",216);
for(i=0;i<8;i++)
printf("%c",205);
printf("%c",206);
for(i=0;i<15;i++)
printf("%c",205);
printf("%c\n",185); printf("%c",186); /*填入数据*/
printf(" ");
printf("%c",179);
printf(" ");
printf("%c",186);
printf(" ");
printf("%c\n",186); printf("%c",200); /*画最后条表格线*/
for(i=0;i<10;i++)
printf("%c",205);
printf("%c",207);
for(i=0;i<8;i++)
printf("%c",205);
printf("%c",202);
for(i=0;i<15;i++)
printf("%c",205);
printf("%c\n",188); getch();/*利用这个函数我们可以找到制表符号所对应的数值*/
}
/*这只是个例子,通过他我们发现除了第一条和最后一条不一样外,其他的中间都是一样的,这样我们可以把他写成函数的形式,具体方法你可以自己试试,若有不懂,可以加我好友*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过二维数组的方式进行输出,代码如下:
#include<stdio.h>
#include<string.h>
char S[100][1000]={' '};//声明表为全局变量
int s1=0;
void chart(int n,int a[],int m);
int main()
{
int n;
int M1[40]={0},M2[40]={0},M3[40][100]={0};
int i,j,k,k1,k2,max=0,col,l;
char s[30][1000];
scanf("%d",&n);
getchar();//注意,必须得有这个来接收回车符
//获得表格数据
for(i=0;i<n;i++)
gets(s[i]);
//求最大列数
for(i=0;i<n;i++)
{
l=strlen(s[i]);
for(j=0;j<l;j++)
{
if(s[i][j]==',')
M1[i]++;
}
if(M1[i]>max)
{
max=M1[i];
}
}
col=++max;
//求每列最大宽度 //1.先求每个单元的长度,赋给M3[i][j]中
for(i=0;i<n;i++)
{
l=strlen(s[i]);
k=0;
for(j=0;j<l;j++)
{
if(s[i][j]!=',')
{
M3[i][k]++;
}
if(s[i][j]==',')
k++;
} //for2
}//for1
//2.找每列最大的赋予M2[]
for(j=0;j<col;j++)
{
max=0;
for(i=0;i<n;i++)
{
if(M3[i][j]>max)
max=M3[i][j];
}
M2[j]=max;
}
//表格
chart(n,M2,col);
//输入数据
for(i=0;i<n;i++)
{
k1=0;
k2=0;
k=0;
l=strlen(s[i]);
for(j=0;j<l;j++)
{
S[2*i+1][k2+1]=s[i][j];
if(s[i][j+1]==',')
{
k1=k1+M2[k]+1;
k2=k1;
k++;
j++;
}
else
k2++;
}
}
//输出表格
for(i=0;i<=2*n;i++)
{
for(j=0;j<s1;j++)
printf("%c",S[i][j]);
printf("\n");
}
return 0;
}
void chart(int n,int a[],int m)//行数 每列的最大长度数组
{
int i,j,k;
int s;
s1=m+1;
for(i=0;i<m;i++)
s1+=a[i];
for(i=0;i<=2*n;i++)
{
//输出奇数行
if(i%2==0)
{
s=0;
k=0;
for(j=0;j<s1;j++)
{
if(j==s)
{
S[i][j]='+';
s+=a[k];
s++;
k++;
}
else
S[i][j]='-';
}//for
} //if
//输出偶数行
else
{
s=0;
k=0;
for(j=0;j<s1;j++)
{
if(j==s)
{
S[i][j]='|';
s+=a[k];
s++;
k++;
}
}
}
} //for
}
#include<stdio.h>
#include<string.h>
char S[100][1000]={' '};//声明表为全局变量
int s1=0;
void chart(int n,int a[],int m);
int main()
{
int n;
int M1[40]={0},M2[40]={0},M3[40][100]={0};
int i,j,k,k1,k2,max=0,col,l;
char s[30][1000];
scanf("%d",&n);
getchar();//注意,必须得有这个来接收回车符
//获得表格数据
for(i=0;i<n;i++)
gets(s[i]);
//求最大列数
for(i=0;i<n;i++)
{
l=strlen(s[i]);
for(j=0;j<l;j++)
{
if(s[i][j]==',')
M1[i]++;
}
if(M1[i]>max)
{
max=M1[i];
}
}
col=++max;
//求每列最大宽度 //1.先求每个单元的长度,赋给M3[i][j]中
for(i=0;i<n;i++)
{
l=strlen(s[i]);
k=0;
for(j=0;j<l;j++)
{
if(s[i][j]!=',')
{
M3[i][k]++;
}
if(s[i][j]==',')
k++;
} //for2
}//for1
//2.找每列最大的赋予M2[]
for(j=0;j<col;j++)
{
max=0;
for(i=0;i<n;i++)
{
if(M3[i][j]>max)
max=M3[i][j];
}
M2[j]=max;
}
//表格
chart(n,M2,col);
//输入数据
for(i=0;i<n;i++)
{
k1=0;
k2=0;
k=0;
l=strlen(s[i]);
for(j=0;j<l;j++)
{
S[2*i+1][k2+1]=s[i][j];
if(s[i][j+1]==',')
{
k1=k1+M2[k]+1;
k2=k1;
k++;
j++;
}
else
k2++;
}
}
//输出表格
for(i=0;i<=2*n;i++)
{
for(j=0;j<s1;j++)
printf("%c",S[i][j]);
printf("\n");
}
return 0;
}
void chart(int n,int a[],int m)//行数 每列的最大长度数组
{
int i,j,k;
int s;
s1=m+1;
for(i=0;i<m;i++)
s1+=a[i];
for(i=0;i<=2*n;i++)
{
//输出奇数行
if(i%2==0)
{
s=0;
k=0;
for(j=0;j<s1;j++)
{
if(j==s)
{
S[i][j]='+';
s+=a[k];
s++;
k++;
}
else
S[i][j]='-';
}//for
} //if
//输出偶数行
else
{
s=0;
k=0;
for(j=0;j<s1;j++)
{
if(j==s)
{
S[i][j]='|';
s+=a[k];
s++;
k++;
}
}
}
} //for
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-12
展开全部
能在详细点吗?例如┌┍┎┏┑┐┒┓─├┝┞┟┠┡┢┣┬┭┯┮┰┱┲┳┼┽┾┿╁╀╂╃如果用的vc的话可以是字符输出中加入以上字符可以拼表格。如果是窗口化编程就容易了,可以用MFC
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf(“|-----------|-----------|”);
printf(“| | |”);
printf(“|-----------|-----------|”);
printf(“| | |”);
printf(“|-----------|-----------|”);
printf(“| | |”);
printf(“|-----------|-----------|”);
printf(“| | |”);
printf(“|-----------|-----------|”);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询