QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 684|回复: 7

我想问一个程序的算法

[复制链接]
发表于 2003-7-6 16:28:34 | 显示全部楼层 |阅读模式
比如说我要排列下列
学号        姓名         年龄
  01           看看        12
02           规格        18
我应该怎么写一个程序让它整齐排列啊!!!!!!
说一可行的想法,我当初是想是算出每个字符串的长度,不过就加空格啊!!!
charc[2]= " ";然后我把它加入整个字符串!不过,好像不行啊!!!
请大家帮帮忙!!!!能写出程序更好了!!!!!!
:-(  :-(  :-(  :-(
发表于 2003-7-6 17:09:45 | 显示全部楼层
如果每个项目都不是很长的话,printf里加\t不就行了?
回复

使用道具 举报

 楼主| 发表于 2003-7-6 19:02:11 | 显示全部楼层
不是的啊!!!如果每个项目的长短都不一样啊!!!
如果用\t好像是不行的啊!!!! :-(
回复

使用道具 举报

发表于 2003-7-6 19:51:02 | 显示全部楼层
用空格补齐啊!先strlen得到长度,然后输出的时候先输出(LEN - strlen(str))个空格,然后再输出str
回复

使用道具 举报

 楼主| 发表于 2003-7-7 10:08:31 | 显示全部楼层
怎么用空格呢????
举个例子来看看!!!!!!
我用strcat(ccdate," ");
来拷贝一个空格对不对呢?????
写个程序来看下,谢谢!!!! :-(  :-(
回复

使用道具 举报

发表于 2003-7-7 11:30:51 | 显示全部楼层
首先你设定每个项目之间的距离是多少
比如说学号和姓名之间的距离是LEN(足够长)
然后顺序打印,不够补空格的了,比如姓名:
printf("%s",name);
int i=LEN-strlen(name);
while(i--)
printf(" ");

这样可以了么
回复

使用道具 举报

发表于 2003-7-7 12:47:20 | 显示全部楼层
我觉得做得不错的
回复

使用道具 举报

 楼主| 发表于 2003-7-20 20:55:56 | 显示全部楼层
利害啊!!!
不过,我又有另一种简便的方法,就是有格式字符了
如:printf(“%-10s%-10s“,a,b);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-15 12:06 , Processed in 0.046570 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表