⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 经典C源程序100例.txt

📁 一百个经典c语言程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
2.程序源代码: 
#include "graphics.h" 
main() 
{int driver,mode,i; 
float x0,y0,y1,x1; 
float j=12,k; 
driver=VGA;mode=VGAHI; 
initgraph(&driver,&mode,""); 
setbkcolor(GREEN); 
x0=263;y0=263;y1=275;x1=275; 
for(i=0;i<=18;i++) 
{ 
setcolor(5); 
line(x0,y0,x0,y1); 
x0=x0-5; 
y0=y0-5; 
x1=x1+5; 
y1=y1+5; 
j=j+10; 
} 
x0=263;y1=275;y0=263; 
for(i=0;i<=20;i++) 
{ 
setcolor(5); 
line(x0,y0,x0,y1); 
x0=x0+5; 
y0=y0+5; 
y1=y1-5; 
} 
} 
============================================================== 
【程序58】 
题目:画图,学用rectangle画方形。    
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 
2.程序源代码: 
#include "graphics.h" 
main() 
{int x0,y0,y1,x1,driver,mode,i; 
driver=VGA;mode=VGAHI; 
initgraph(&driver,&mode,""); 
setbkcolor(YELLOW); 
x0=263;y0=263;y1=275;x1=275; 
for(i=0;i<=18;i++) 
{ 
setcolor(1); 
rectangle(x0,y0,x1,y1); 
x0=x0-5; 
y0=y0-5; 
x1=x1+5; 
y1=y1+5; 
} 
settextstyle(DEFAULT_FONT,HORIZ_DIR,2); 


作者: zhlei81  2005-1-22 11:31   回复此发言   

________________________________________
11 回复:经典C源程序100例 
outtextxy(150,40,"How beautiful it is!"); 
line(130,60,480,60); 
setcolor(2); 
circle(269,269,137); 
} 
============================================================== 
【程序59】 
题目:画图,综合例子。 
1.程序分析: 
2.程序源代码: 
# define PAI 3.1415926 
# define B 0.809 
# include "graphics.h" 
#include "math.h" 
main() 
{ 
int i,j,k,x0,y0,x,y,driver,mode; 
float a; 
driver=CGA;mode=CGAC0; 
initgraph(&driver,&mode,""); 
setcolor(3); 
setbkcolor(GREEN); 
x0=150;y0=100; 
circle(x0,y0,10); 
circle(x0,y0,20); 
circle(x0,y0,50); 
for(i=0;i<16;i++) 
{ 
 a=(2*PAI/16)*i; 
 x=ceil(x0+48*cos(a)); 
 y=ceil(y0+48*sin(a)*B); 
 setcolor(2); line(x0,y0,x,y);} 
setcolor(3);circle(x0,y0,60); 
/* Make 0 time normal size letters */ 
settextstyle(DEFAULT_FONT,HORIZ_DIR,0); 
outtextxy(10,170,"press a key"); 
getch(); 
setfillstyle(HATCH_FILL,YELLOW); 
floodfill(202,100,WHITE); 
getch(); 
for(k=0;k<=500;k++) 
{ 
 setcolor(3); 
 for(i=0;i<=16;i++) 
 { 
  a=(2*PAI/16)*i+(2*PAI/180)*k; 
  x=ceil(x0+48*cos(a)); 
  y=ceil(y0+48+sin(a)*B); 
  setcolor(2); line(x0,y0,x,y); 
 } 
 for(j=1;j<=50;j++) 
 { 
  a=(2*PAI/16)*i+(2*PAI/180)*k-1; 
  x=ceil(x0+48*cos(a)); 
  y=ceil(y0+48*sin(a)*B); 
  line(x0,y0,x,y); 
 } 
} 
restorecrtmode(); 
} 
============================================================== 
【程序60】 
题目:画图,综合例子。    
1.程序分析: 
2.程序源代码: 
#include "graphics.h" 
#define LEFT 0 
#define TOP 0 
#define RIGHT 639 
#define BOTTOM 479 
#define LINES 400 
#define MAXCOLOR 15 
main() 
{ 
int driver,mode,error; 
int x1,y1; 
int x2,y2; 
int dx1,dy1,dx2,dy2,i=1; 
int count=0; 
int color=0; 
driver=VGA; 
mode=VGAHI; 
initgraph(&driver,&mode,""); 
x1=x2=y1=y2=10; 
dx1=dy1=2; 
dx2=dy2=3; 
while(!kbhit()) 
{ 
 line(x1,y1,x2,y2); 
 x1+=dx1;y1+=dy1; 
 x2+=dx2;y2+dy2; 
 if(x1<=LEFT||x1>=RIGHT) 
 dx1=-dx1; 
 if(y1<=TOP||y1>=BOTTOM) 
  dy1=-dy1; 
 if(x2<=LEFT||x2>=RIGHT) 
  dx2=-dx2; 
 if(y2<=TOP||y2>=BOTTOM) 
  dy2=-dy2; 
 if(++count>LINES) 
 { 
  setcolor(color); 
  color=(color>=MAXCOLOR)?0:++color; 
 } 
} 
closegraph(); 
} 

 
 
 
2006-10-25 20:29:49    楼主     
 
  我是一只鱼   
  

威望: -2
级别: 小学生
职务: 论坛版主
经验: 628 
银币: 108
发帖数: 59 篇
注册时间: 2006-09-22 23:31:00
  消息 查看 搜索 好友 修改 删除 复制 引用

--------------------------------------------------------------------------------
 

【程序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 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{ 
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 ; irads = (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 ; ifor( j=i ; jmoveto(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\n",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\n",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\n",*p); 
} 
============================================================== 
【程序70】 
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。    
1.程序分析: 
2.程序源代码: 
main() 
{ 
int len; 
char *str[20]; 
printf("please input a string:\n"); 
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; 
} 

 
--------------------------------------------------------------------------------
 

【程序71】 
题目:编写input()和output()函数输入,输出5个学生的数据记录。 
1.程序分析: 
2.程序源代码: 
#define N 5 
struct student 
{ char num[6]; 
 char name[8]; 
 int score[4]; 
} stu[N]; 
input(stu) 
struct student stu[]; 
{ int i,j; 
 for(i=0;i { printf("\n please input %d of %d\n",i+1,N); 
  printf("num: "); 
  scanf("%s",stu[i].num); 
  printf("name: "); 
  scanf("%s",stu[i].name); 
   for(j=0;j<3;j++) 
   { printf("score %d.",j+1); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -