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

经典c程序100例==61--70

时间: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 for(i=2;i for(j=1;

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

   

  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

  

  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

  

  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!='

  

  

精彩图集

赞助商链接