打印本文 打印本文  关闭窗口 关闭窗口  
经典c程序100例==61--70
作者:佚名  文章来源:不详  点击数  更新时间:2007/12/21 18:19:23  文章录入:杜斌  责任编辑:杜斌

【程序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<i;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'
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;
};
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 ){ /* determine circle intercepts */
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 ){ /* draw the cords to the circle */
for( j=i ; j<maxpts ; ++j ){ /* for each remaining intersect */
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 input 3 number:n1,n2,n3:');
打印本文 打印本文  关闭窗口 关闭窗口