C程序开发经典实例之7
【程序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("
");
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("
");
}
}
【程序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 { 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 { 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 { 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 { for(j=i; 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
- 上一篇:C程序开发经典实例之6
- 下一篇:C程序开发经典实例之4