/********************************************************************************
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、虚拟主机、营销软件、网站建设、凤凰网站维护、网站推广。
给一个由英文大写字母组成的字符串,串长为n*n(0n11),请将这个按Z字形排列输出这个字符方阵。
比如: ABCDEFGHI,Z字形排成一个3*3的方阵如下:
ABF
CEG
DHI
输入
每行一个字符串。
输出
输出对应矩阵,每个矩阵之后有一个空行。
Sample Input
ABCDEFGHI
AAAABBBBCCCCDDDD
Sample Output
ABF
CEG
DHI
AABB
ABBD
ACCD
CCDD
********************************************************************************/
#includestdio.h
#includestring.h
#define N 11
int i,j;
int k;
int ln;
int n;
char s[N*N];
char a[N][N];
void go_right(){
j++;
}
void go_left(){
j--;
}
void go_down(){
i++;
}
void go_up(){
i--;
};
void left_down(){
go_left();
go_down();
}
void right_up(){
go_right();
go_up();
}
void go(){
while(1){
if(j+1 n){
go_right();a[i][j] = s[k];k++;//右移
if(k == ln +1) return;
}
else{
go_down(); a[i][j] = s[k];k++;
if(k == ln +1) return;
}
while(1){//左下移动
left_down();
if(j = 0 i n) {
a[i][j]=s[k]; k++;
if(k == ln +1) return;
}
else break;
}
j++;i--;//还原一步
if(i+1 n){
go_down();a[i][j] = s[k];k++;//向下
if(k == ln +1) return;
}
else{
go_right();a[i][j] = s[k];k++;//右移
if(k == ln +1) return;
}
while(1){//右上移动
right_up();
if(i=0 jn){
a[i][j]=s[k]; k++;
if(k == ln +1) return;
}
else break;
}
i++;j--;//还原一步
}
}
void print(){
i=j=0;
for(i=0;in;i++){
for(j=0;jn;j++)
printf("%c",a[i][j]);
printf("\n");
}
}
void Z(char s[]){
ln = strlen(s);
n = (int)sqrt(ln);
k=0;
i=j=0;
a[i][j] = s[k];k++;
go();
print();
return;
}
int main(){
while(scanf("%s",s) != EOF){
Z(s);
}
return 0;
}
以前写的,非常类似。希望能帮助到你。
田中口,一低头,弓形数。解三个阿拉伯数字——答案:813。
低头下心
【拼音】: dī tóu xià xīn
【解释】: 下心:屈服于人。形容屈服顺从。
【出处】: 郑振铎《风波》:“他连忙低头下心的劝道:‘不要着急,不要着急,我说着玩玩的!房里冷,快来睡!’”
【拼音代码】: dtxx
【近义词】: 低头俯心、低首下心
【用法】: 作谓语、定语、状语;指屈服
【英文】: bow one's head in humility
画出任意一条直线与圆相割(割出大的那边弧段叫优弧,小的那边弧段叫劣弧),从圆心向直线作一条垂线并延长到圆形边上(即延长到劣弧上)。此时劣弧与直线之间的那段垂线就是弓高。—劣弧的弓高。
有图吗?你的问题太笼统了,画个弓形很简单啊,里面还有什么线,可以上传一个图来看看。幸许能帮你~~~~