C程序开发经典实例之7

王朝c/c++·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

【程序61】

题目:打印出杨辉三角形(要求打印出10行如下图)

1.程序分析:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

2.程序源代码:

main()

{

int i, j;

int a[10][10];

printf("\n");

for(i=0; i<10; i++)

{

a[i][0] = 1;

a[i][i] = 1;

}

for(i=2;i<10;i++)

for(j=1;j<10; j++)

a[i][j] = a[i-1][j-1] + a[i-1][j];

for(i=0; i<10; i++)

{

for(j=0;j<=i;j++)

printf("%5d", a[i][j]);

printf("\n");

}

}

【程序62】

题目:学习putpixel画点。

1.程序分析:

2.程序源代码:

#include "stdio.h"

#include "graphics.h"

main()

{

int i, j, driver = VGA, mode = VGAHI;

initgraph(&driver, &mode, "");

setbkcolor(YELLOW);

for(i=50; i<=230; i+=20)

for(j=50; j<=230; j++)

putpixel(i, j, 1);

for(j=50; j<=230; j+=20)

for(i=50; i<=230; i++)

putpixel(i, j, 1);

}

【程序63】

题目:画椭圆ellipse

1.程序分析:

2.程序源代码:

#include "stdio.h"

#include "graphics.h"

#include "conio.h"

/* 欢迎访问 C++Builder研究 - www.ccrun.com */

main()

{

int x = 360, y = 160, driver = VGA, mode = VGAHI;

int num=20, i;

int top, bottom;

initgraph(&driver, &mode, "");

top = y - 30;

bottom = y - 30;

for(i=0; i<num; i++)

{

ellipse(250, 250, 0, 360, top, bottom);

top -= 5;

bottom += 5;

}

getch();

}

【程序64】

题目:利用ellipse and rectangle 画图。

1.程序分析:

2.程序源代码:

#include "stdio.h"

#include "graphics.h"

#include "conio.h"

main()

{

int driver = VGA, mode = VGAHI;

int i, num = 15, top = 50;

int left = 20, right = 50;

initgraph(&driver, &mode, "");

for(i=0; i<num; i++)

{

ellipse(250, 250, 0, 360, right, left);

ellipse(250, 250, 0, 360, 20, top);

rectangle(20 - 2 * i, 20 - 2 * i, 10 * (i + 2), 10 * (i + 2));

right += 5;

left += 5;

top += 10;

}

getch();

}

【程序65】

题目:一个最美丽的图案。

1.程序分析:

2.程序源代码:

#include "graphics.h"

#include "math.h"

#include "dos.h"

#include "conio.h"

#include "stdlib.h"

#include "stdio.h"

#include "stdarg.h"

#define MAXPTS 15

#define PI 3.1415926

strUCt PTS

{

int x, y;

};

/* 63 63 72 75 6E 2E 63 6F 6D */

double ASPectRatio = 0.85;

void LineToDemo(void)

{

struct viewporttype vp;

struct PTS points[MAXPTS];

int i, j, h, w, xcenter, ycenter;

int radius, angle, step;

double rads;

printf(" MoveTo / LineTo Demonstration" );

getviewsettings( &vp );

h = vp.bottom - vp.top;

w = vp.right - vp.left;

xcenter = w / 2; /* Determine the center of circle */

ycenter = h / 2;

radius = (h - 30) / (AspectRatio * 2);

step = 360 / MAXPTS; /* Determine # of increments */

angle = 0; /* Begin at zero degrees */

for(i=0; i<MAXPTS; i++)

{

rads = (double)angle * PI / 180.0; /* Convert angle to radians */

points[i].x = xcenter + (int)( cos(rads) * radius );

points[i].y = ycenter - (int)( sin(rads) * radius * AspectRatio );

angle += step; /* Move to next increment */

}

circle( xcenter, ycenter, radius ); /* Draw bounding circle */

for(i=0; i<MAXPTS; i++)

{

for(j=i; j<MAXPTS; j++)

{

moveto(points[i].x, points[i].y); /* Move to beginning of cord */

lineto(points[j].x, points[j].y); /* Draw the cord */

}

}

}

main()

{

int driver, mode;

driver = CGA; mode = CGAC0;

initgraph(&driver, &mode, "");

setcolor(3);

setbkcolor(GREEN);

LineToDemo();

}

【程序66】

题目:输入3个数a, b, c,按大小顺序输出。

1.程序分析:利用指针方法。

2.程序源代码:

/*pointer*/

main()

{

int n1, n2, n3;

int *pointer1, *pointer2, *pointer3;

printf("please&n

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航