龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

C语言程序开发经典实例之七

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
【程序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 { a[i][0]=1; a[i]

【程序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

  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"

  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;

  };

  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 input 3 number:n1,n2,n3:");

   scanf("%d,%d,%d",&n1,&n2,&n3);

   pointer1=&n1;

   pointer2=&n2;

   pointer3=&n3;

   if (n1>n2) swap(pointer1,pointer2);

  if(n1>n3) swap(pointer1,pointer3);

   if(n2>n3) swap(pointer2,pointer3);

  printf("the sorted numbers are:%d,%d,%d

",n1,n2,n3);

  }

  swap(p1,p2)

  int *p1,*p2;

  {

   int p;

   p=*p1;*p1=*p2;*p2=p;

  }

  【程序67】

  

  题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

  

  1.程序分析:谭浩强的书中答案有问题。  

  

  2.程序源代码:

  

  

  

main()

  {

   int number[10];

   input(number);

   max_min(number);

   output(number);

  }

  input(number)

  int number[10];

  {

   int i;

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

  scanf("%d,",&number[i]);

  scanf("%d",&number[9]);

  }

  max_min(array)

  int array[10];

  {

   int *max,*min,k,l;

   int *p,*arr_end;

   arr_end=array+10;

   max=min=array;

   for(p=array+1;p

  if(*p>*max) max=p;

  else if(*p<*min) min=p;

  k=*max;

  l=*min;

  *p=array[0];array[0]=l;l=*p;

  *p=array[9];array[9]=k;k=*p;

   return;

  }

  output(array)

  int array[10];

  {

   int *p;

   for(p=array;p

  printf("%d,",*p);

   printf("%d

",array[9]);

  }

【程序68】

  

  题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

  

  1.程序分析:

  

  2.程序源代码:

  

  

main()

  {

   int number[20],n,m,i;

   printf("the total numbers is:");

   scanf("%d",&n);

   printf("back m:");

   scanf("%d",&m);

   for(i=0;i

  scanf("%d,",&number[i]);

  scanf("%d",&number[n-1]);

  move(number,n,m);

   for(i=0;i

  printf("%d,",number[i]);

  printf("%d",number[n-1]);

  }

  move(array,n,m)

  int n,m,array[20];

  {

   int *p,array_end;

   array_end=*(array+n-1);

   for(p=array+n-1;p>array;p--)

  *p=*(p-1);

  *array=array_end;

  m--;

  if(m>0) move(array,n,m);

  }

  【程序69】

  

  题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

  

  1. 程序分析:

  

  2.程序源代码:

  

  

#define nmax 50

  main()

  {

   int i,k,m,n,num[nmax],*p;

   printf("please input the total of numbers:");

   scanf("%d",&n);

   p=num;

   for(i=0;i

  *(p+i)=i+1;

  i=0;

  k=0;

  m=0;

  while(m

  {

   if(*(p+i)!=0) k++;

   if(k==3)

   {

  *(p+i)=0;

  k=0;

  m++;

   }

   i++;

   if(i==n) i=0;

  }

  while(*p==0) p++;

   printf("%d is left

",*p);

  }

  【程序70】

  

  题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。   

  

  1.程序分析:

  

  2.程序源代码:

  

  

main()

  {

   int len;

   char *str[20];

   printf("please input a string:

");

   scanf("%s",str);

   len=length(str);

   printf("the string has %d characters.",len);

  }

  length(p)

  char *p;

  {

   int n;

   n=0;

   while(*p!='\0')

   {

  n++;

  p++;

   }

   return n;

  }

  

精彩图集

赞助商链接