重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
画出任意一条直线与圆相割(割出大的那边弧段叫优弧,小的那边弧段叫劣弧),从圆心向直线作一条垂线并延长到圆形边上(即延长到劣弧上)。此时劣弧与直线之间的那段垂线就是弓高。—劣弧的弓高。
创新互联于2013年开始,是专业互联网技术服务公司,拥有项目网站建设、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元皋兰做网站,已为上家服务,为皋兰各地企业和个人服务,联系电话:18982081108
有图吗?你的问题太笼统了,画个弓形很简单啊,里面还有什么线,可以上传一个图来看看。幸许能帮你~~~~
/********************************************************************************
给一个由英文大写字母组成的字符串,串长为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;
}
以前写的,非常类似。希望能帮助到你。