惭愧,我最近才学的,我算了两天,也就算出上面的,下面输出不会算,看来是没认真看,我还需要努力。
关键是理清思路,逻辑上先想清楚。其实方法很多,给出相对来说比较简单的一种方法。
1. 组成图形的符号 char str;
2. 菱形边长 int len
3. 菱形特点 |x| + |y| = (len-1)/2
4. 是空心还是实心
参考代码,是回过头来写的。看你的进度吧,只是交流种思路。
#include <windows.h>
#include <stdlib.h>
void gotoxy(int x, int y)//跳转到屏幕(x,y)这个坐标点上
{
//Initialize the coordinates
COORD coord = {x, y};
//Set the position
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
return;
}
int Abs(int x) //绝对值
{
return x<0 ? -x:x;
/*
if(x<0)
{
x=-x;
}
return x;
*/
}
int SolidDia(charstr,int len) //实心菱形
{
int x0=20,y0=10; //菱形中心坐标
int x=0,y=0;
int n=(len-1)/2;
for(x=-n;x<=n;x++)
{
for(y=-n;y<=n;y++)
{
if((Abs(x)+Abs(y))<=n)
{
gotoxy(x+x0,y+y0);
printf("%c",str);
}
}
}
return 0;
}
int EmptyDia(charstr,int len) //空心菱形
{
int x0=50,y0=10; //菱形中心坐标
int x=0,y=0;
int n=(len-1)/2;
for(x=-n;x<=n;x++)
{
for(y=-n;y<=n;y++)
{
if((Abs(x)+Abs(y))==n)
{
gotoxy(x+x0,y+y0);
printf("%c",str);
}
}
}
return 0;
}
int main()
{
char str = '*';//边的图形
int len=17;
system("cls");
SolidDia(str,len); //实心菱形
str ='$';
EmptyDia(str,len);
gotoxy(1,24);
return 0;
}
sdnyzjzx 发表于 2012-5-29 10:08 static/image/common/back.gif
关键是理清思路,逻辑上先想清楚。其实方法很多,给出相对来说比较简单的一种方法。
1. 组成图形的符号...
其实,我也就学习了c两个月,还是自学的,看你的这个还有很多不懂的,{:sweat:},不过我会慢慢研究的,谢谢你。 学习学习
页:
1
[2]