C语言做一个表格的程序,用C语言画个简单表格

今天见到个题目,就把他做了,题目如下:

在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。有的时候可以用一些符号大略地模拟:(word文档中可能不整齐,拷贝到记事本中看)

+-------+------+

|abc      |xyz=tt|

+-------+------+

|hellomm|t2      |

+-------+------+

本题目要求设计一个程序,把用户输入的内容用这种“准表格”的方式展现出来。具体的要求是:

用户输入的第一行是一个整数,表示接下来有多少行信息。接下来的每行由若干单元组成。单元间用逗号分开。

程序输出:用表格方式重新展现的输入内容。

例如:

用户输入:

3

cat,dog,good-luck

1,2,5

do not use,,that

则程序输出:(word文档中可能不整齐,拷贝到记事本中看)

+----------+---+---------+

|cat           |dog|good-luck|

+----------+---+---------+

|1              |2   |5            |

+----------+---+---------+

|do not use|     |that        |

+----------+---+---------+

从中不难看出:

两个连续的逗号表示中间有一个内容为空的单元

列的数目由最大的单元数的那行决定

列的宽度由同列的最宽的单元决定

单元格中的信息左对齐

可以假设:用户输入的最大行数为30,可能的最多列数为40。

代码如下:

#include#include

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;igets(s[i]);

//求最大列数 for(i=0;i{

l=strlen(s[i]);

for(j=0;j{

if(s[i][j]==',')

M1[i]++;

}

if(M1[i]>max)

{

max=M1[i];

}

}

col=++max;

//求每列最大宽度

//1.先求每个单元的长度,赋给M3[i][j]中 for(i=0;i{

l=strlen(s[i]);

k=0;

for(j=0;j{

if(s[i][j]!=',')

{

M3[i][k]++;

}

if(s[i][j]==',')

k++;

} //for2 }//for1//2.找每列最大的赋予M2[] for(j=0;j {

max=0;

for(i=0;i{

if(M3[i][j]>max)

max=M3[i][j];

}

M2[j]=max;

}

//表格 chart(n,M2,col);

//输入数据 for(i=0;i{

k1=0;

k2=0;

k=0;

l=strlen(s[i]);

for(j=0;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;jprintf("%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;is1+=a[i];

for(i=0;i<=2*n;i++)

{

//输出奇数行 if(i%2==0)

{

s=0;

k=0;

for(j=0;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{

if(j==s)

{

S[i][j]='|';

s+=a[k];

s++;

k++;

}

}

}

} //for

}

OK!

一个例子如下,O(∩_∩)O~

24b25ea3c2b8b6f89f7e81ecdbb17f9a.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习框架PyTorch一书的学习-第四章-神经网络工具箱nn

参考https://github.com/chenyuntc/pytorch-book/tree/v1.0 希望大家直接到上面的网址去查看代码&#xff0c;下面是本人的笔记 本章介绍的nn模块是构建与autograd之上的神经网络模块 除了nn外还会介绍神经网络中常用的工具&#xff0c;比如优化器optim、初始化init等 1.nn.Mod…

地铁售票系统设计思想及部分代码

设计思想&#xff1a;地铁售票系统的关键点在于换乘&#xff0c;所以首先要分为换乘和不换乘两种情况。不换乘比较简单&#xff0c;通过起始站名和终点站名查询他们的num&#xff0c;然后list打包输出到jsp就可以。换乘的话就先要找到两条线路&#xff0c;找到两条线路的交点也…

浏览器拦截跨域请求处理方法(已阻止跨源请求:同源策略禁止读取远程资源)

原文地址&#xff1a;http://my.oschina.net/lichaoqiang/blog/317823 在浏览器请求中&#xff0c;出现跨域访问资源的问题&#xff0c;我们肯定会遇到。如果跨域请求被阻止&#xff0c;有可能导致css、js 、ajax请求、font字体等资源出现无法正常访问的问题。接下来&#xff0…

面向视频的全新AI架构 —— 阿里云智能视觉技术全解

2019独角兽企业重金招聘Python工程师标准>>> 我们都知道&#xff0c;AI技术正在以可见的速度被应用于各行各业&#xff0c;然而绝大部分业务场景想应用AI技术&#xff0c;都需要算法工程师根据自身业务的标注数据&#xff0c;来进行单独训练&#xff0c;才能打磨出合…

【转】利用python的KMeans和PCA包实现聚类算法

转自&#xff1a;https://www.cnblogs.com/yjd_hycf_space/p/7094005.html 题目&#xff1a; 通过给出的驾驶员行为数据&#xff08;trip.csv&#xff09;&#xff0c;对驾驶员不同时段的驾驶类型进行聚类,聚成普通驾驶类型&#xff0c;激进类型和超冷静型3类 。 利用Python的s…

c 语言str.size,C/C++ strlen(str)和str.length()和str.size()的区别

strlen(str)和str.length()和str.size()都可以求字符串长度,返回字符串中字符的长度&#xff0c;不包括‘/0’。其中str.length()和str.size()是同义词&#xff0c;返回同样的值。strlen(str)是用于求字符数组的长度&#xff0c;其参数是char*。#include #include using namesp…

想跑次高频策略?快来看看Numpy处理真格量化tick数据的技巧

使用澎博真格量化时&#xff0c;很多用户希望用numpy处理tick数据&#xff0c;包括tick数据的留存和运算。 这里有一些技巧。 因为tick数据量比较大&#xff0c;为了降低系统的运算负担&#xff0c;我们不应该在内存里保存大量tick数据。 比如我们只想保存过去10个tick。 可以在…

日本显示屏巨头JDI不敌业务压力,宣布接受中方注资...

本次10亿美元的融资金额中&#xff0c;其中7.2亿美元据传来自中国丝绸之路基金。 最初&#xff0c;在液晶领域日本企业一直都占据着主要市场&#xff0c;如夏普、NEC、东芝等。后来随着韩国三星、LG的强势进入&#xff0c;日本企业的生存空间开始被抢占&#xff0c;现如今中国…

c语言中 d 1是啥意思,空开D/C是什么意思?终于有人把它说清楚了!

原标题&#xff1a;空开D/C是什么意思&#xff1f;终于有人把它说清楚了&#xff01;空气开关是每个人家里必用的东西&#xff0c;但是你到五金店一看&#xff0c;大大小小的开关插座多了去&#xff0c;让人眼花缭乱。怎么选呢&#xff1f;空开有各种字母型号&#xff0c;这些字…

微信小程序开发 | 官方问答精选

2019独角兽企业重金招聘Python工程师标准>>> SF问答精选《七》 多组件显示与隐藏如何实现、function中的...SF问答精选《六》canvas不显示问题SF问答精选《五》菜单内容左右联动、生命周期函数SF问答精选《四》eslint 配置使用 co function&#xff1b;apache 反向代…

清北学堂培训2019.4.4

第一次培训&#xff0c;心情有点激动&#xff08;尽管没了清明节&#xff09;&#xff0c;还见到了各地的dalao们&#xff0c;十分开森 Day 1&#xff08;李昊dalao&#xff09; 上午篇 上午呢&#xff0c;主要讲了关于高精&#xff0c;快速幂&#xff0c;膜模意义下的运算&…

swft c 语言 数组,如何在swift中实现数组的深拷贝

在Objective-C中如果想将一个数组赋值给另外一个数组&#xff0c;同时想让两个数组之间相互独立(即改变其中的一个数组&#xff0c;不影响另外的一个)&#xff0c;有很多的办法&#xff0c;比如我们可以直接copy,用类方法创建新数组。这样得到的数组和原来的数组就是两个完全独…

android studio按钮槽函数,AndroidStudio按钮Button退出程序

AndroidStudio 3.1.41.创建一个新的项目&#xff0c;项目名称为Button&#xff0c;界面为activity_button.xml2.打开activity_button.xml3.点击HelloWorld标签&#xff0c;按Delete删除4.左侧组件栏选择Common - Button5.将Button组件拖到界面上&#xff0c;大概中间的位置6.右…

cobbler介绍与部署

cobbler介绍 Cobbler是一个Linux系统安装的服务&#xff0c;可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机&#xff0c;同时还可以管理DHCP&#xff0c;DNS等。 Cobbler可以使用命令行方式管理&#xff0c;也提供了基于Web的界面管理工具(cobbler-web)&#…

android手机给iphone越狱,一台ROOT后的安卓手机:可以用来给iOS 13越狱了

iOS 13时代的越狱工具主要包括unc0ver和Checkra1n两款&#xff0c;前者最新的v4.2.1版本已经支持A9到A13设备从除了支持的设备和系统多&#xff0c;unc0ver的一大优势在于可在iOS设备上独立完成越狱操作&#xff0c;Checkra1n则需要借助电脑&#xff0c;包括重启失效后也是如此…

iOS VIPER架构(三)

路由是实现模块间解耦的一个有效工具。如果要进行组件化开发&#xff0c;路由是必不可少的一部分。目前iOS上绝大部分的路由工具都是基于URL匹配的&#xff0c;优缺点都很明显。这篇文章里将会给出一个更加原生和安全的设计&#xff0c;这个设计的特点是&#xff1a; 路由时用p…

android camera滑动,Android怎么实现小米相机底部滑动指示器

Android怎么实现小米相机底部滑动指示器发布时间&#xff1a;2021-04-15 14:39:38来源&#xff1a;亿速云阅读&#xff1a;94作者&#xff1a;小新这篇文章给大家分享的是有关Android怎么实现小米相机底部滑动指示器的内容。小编觉得挺实用的&#xff0c;因此分享给大家做个参考…

Mariadb修改root密码

2019独角兽企业重金招聘Python工程师标准>>> 默认情况下&#xff0c;新安装的 mariadb 的密码为空&#xff0c;在shell终端直接输入 mysql 就能登陆数据库。 如果是刚安装第一次使用&#xff0c;请使用 mysql_secure_installation 命令初始化。 # mysql_secure_inst…

自学html和css,学习HTML和CSS的5大理由

描述人们学习HTML和CSS最常见的原因是开始从事web开发。但并不是只有web开发人员才要学习HTML和CSS的核心技术。作为一个网络用户&#xff0c;你需要你掌握的相关技术很多&#xff0c;但下面有5个你无法拒绝学习HTML和CSS的理由。1、轻松制作卡通动画Web上的动画很多年来都是使…

html 左侧 树形菜单,vue左侧菜单,树形图递归实现代码

学习vue有一段时间了&#xff0c;最近使用vue做了一套后台管理系统&#xff0c;左侧菜单需求是这样的&#xff0c;可以多层&#xff0c;数据由后台传递。也因为自己对官方文档的不熟悉使得自己踩了不少坑&#xff0c;今天写出来和大家一起分享。效果图如下所示&#xff1a;先说…