小代码 细心体会 含3对父子编程

 #include"wz.h"
#define n 5
#define N 5
//1
struct pb{int *p;struct{int x, y;}s;struct pb *next;};
void neicunduiqi() { struct pb w; printf("内存对齐\nsize of struct pb%2d\n",sizeof(w));}
//2
void jcqh()
{
int nn=4;int i=0;
int sum=1; int SUM=0;printf("阶乘求和:\n");
for(i=1;i<=nn;i++){sum*=i;SUM+=sum;} printf("%d\n",SUM);
}
//3
void swap(int*x,int *y) { if(*y!=*x){*y=*x^*y;*x=*x^*y;*y=*x^*y;}}
void r_array(int a[],int nn){int f,l; for(f=0,l=nn-1;f<=l;f++,l--)swap(&a[f],&a[l]);}
void display(int a[],int nn){int i;for(i=0;i<nn;i++)printf("%2d",a[i]);printf("\n");}
void swap_array() { int a[6]={1,2,3,4,5,6};int m=6;  printf("(swap):\n");r_array(a,m); display(a,m);}
//4
void mppx(int v[],int nn)
  {   int i=0,j=0,t=0;
   for(i=0;i<nn;i++)
    { 
     for(j=0;j<nn-1-i;j++)  { if(v[j]>v[j+1]) {t=v[j+1];v[j+1]=v[j];v[j]=t;} }
    } 
 }
void display1(int a[],int nn){int i;for(i=0;i<nn;i++)printf("%2d",a[i]);printf("\n");}
void paixu_array(){ int x[9]={1,3,5,7,9,2,4,6,8}; printf("数组 冒泡排序:\n"); mppx(x,9); display1(x,9); }
//5
void  qiuandhoutao()
{
double  hight=100.0,sum=0.0;
int  day=9,tao=1,i,nn=0;
 printf("落球和猴吃桃问题:\n");
while(hight>0.01)  {hight=hight/2;++nn;}
     hight=100;
for(i=1;i<=nn;i++)  {sum=sum+2*hight; hight=hight/2;}   printf("sum=%f\n",sum-100);
while(day)         {  tao=2*(tao+1);   day--;}         printf("tao=%d\n",tao);
}
//6
void dis(int x[][n])
{
int i=0;int j=0;
for(i=0;i<n;i++)//for必须补齐,不然易错,至少自己虚拟机测试过
   {
   for(j=0;j<n;j++){printf("%4d",x[i][j]);}
   printf("\n");
   }
}
void findout(int x[][n]){}
void  migong()
{
int x[n][n]={0};int r,c,m;
m=n*n/4;
time_t t;
srand((unsigned)time(&t));
while(m)
{
r=rand()%6; c=rand()%4;
x[r][c]=1;x[0][0]=0;
m--;
}
//printf("%d\n",m);
printf("随机生成的迷宫如下\n");
dis(x);
findout(x);
}
 int jc(int x){int i=1;int ret=1;for(;i<=x;i++) ret*=i;return ret;}
 int c(int m,int l){return(jc(m)/(jc(l)*jc(m-l)));}
 int pw(int x){int i=1;int ret=1;for(;i<=x;i++) ret*=2;return ret;}
void  fuzipaidui()
{
 int nn=3;       int i=0;
 int flag=-1;   int kinds=jc(2*nn);
 printf("父子排队问题:\n");
 for(i=1;i<=nn;i++)  {kinds+=flag*jc(2*nn-i)*pw(i)*c(nn,i);flag=-flag;}
printf("kinds=%d\n",kinds);
}
void zArray()
{int bz=0; int x[N][N]={0}; int i=0,j=0;
 x[0][0]=0;
 printf("打印Z数组:\n");
while(bz<N-2)//N=4,bz<N-1总会出错
 {
  if(bz%2==0)
   {  
     x[i+1][0]=x[i][0]+1;i++;
    while(i>0) {x[i-1][j+1]=x[i][j]+1;i--;j++;}
     bz++;
   }
  
    if(bz%2==1)
   {  
     x[0][j+1]=x[0][j]+1;j++;
    while(j>0) {x[i+1][j-1]=x[i][j]+1;i++;j--;}
   
   bz++;
  }
 }
//中间副对角线
x[N-1][0]=x[N-2][0]+1;
i=N-1;j=0;
while(i>0)
{
i--;j++;
x[i][j]=x[i+1][j-1]+1;
}
bz=0; x[N-1][N-1]=N*N-1;i=N-1;j=N-1;
//右下三角
while(bz<N-2)
 {
  if(bz%2==0)  // 上移后下降
   {  
     x[i-1][j]=x[i][j]-1;i--;
    while(i<N-1) {x[i+1][j-1]=x[i][j]-1;i++;j--;}
     bz++;
   }
  
    if(bz%2==1)//左移后上升
   {  
     x[i][j-1]=x[i][j]-1;j--;
    while(j<N-1) {x[i-1][j+1]=x[i][j]-1;i--;j++;}
   
   bz++;
  }
 }

  dis(x);

}
//7
void xitong_time( void ) 
{ 
time_t t = time(0);  char tmp[64]; 
printf("系统时间:\n");
strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) ); 
puts( tmp ); 
 
} 
void jzqh()
{
int x[5][5]={0};
int i=0,j=0;
int sum1=0,sum2=0;

for(i=0;i<n;i++) 
   {
   for(j=0;j<n;j++){ x[i][j]=i*j;}
   }
for(i=0;i<n;i++) 
   {
   for(j=0;j<n;j++){ if(i==j) sum1+=x[i][j];if(i+j==4) sum2+=x[i][j];}
                     
   }
dis(x);
printf("主对角和=%3d,副对角和=%3d\n",sum1,sum2);

}
void main()
{
int x=18;int y=12;int xy=x*y;int r=x; if(x<y){x=x^y;y=x^y;x=x^y;}
while(r) { r=y%x; y=x; x=r; }
printf("(x,y)=%3d\n", y);
printf("(x,y)=%3d\n", xy/y);

jzqh();
xitong_time();
zArray();
fuzipaidui();
migong();
swap_array();
paixu_array();
jcqh();
neicunduiqi();
}
时间: 2024-10-03 23:10:34

小代码 细心体会 含3对父子编程的相关文章

iOS开发中一些有用的小代码

1.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@&qu

【processing】小代码

今天无意间发现的processing 很有兴趣 实现很简洁 void setup(){ } void draw(){ background(255); if(mouseX < width/2 && mouseY > height/2) { fill(0); rect(0,height/2,width/2,height/2); } } 这个小小的代码可以实现 当鼠标位于画布左下方时显示一个黑色的框 -----------------------------------------

Js 常用小代码

//判断一个汉子等于两个字符 function getByteLen(val) { var len = 0; for (var i = 0; i < val.length; i++) { var a = val.charAt(i); if (a.match(/[^\x00-\xff]/ig) != null) { len += 2; } else { len += 1; } } return len; } Js 常用小代码

小代码 &nbsp; 密码转置 **级 &nbsp; &nbsp; 复习aito ASCII 码值

/**************** WZ  ASUST  2016 写小代码 就是练习小心吧 *****************/ int main() { int x=1,i,j,k; char s;char ss[20]="zZ+_+_+{}{}{}"; cout<<"start:"<<ss<<endl; for(i=0;i<strlen(ss);i++) { if((ss[i]>64&&ss[i]

一段小代码说明@property装饰器的用法

#coding:utf-8 """ 一段小代码说明@property装饰器的用法.__name是私有变量 外部不能通过foo.__name访问,但可以通过foo._Foo__name访问. 如果想通过点运算符设置和访问实例属性怎么办,@property派上用途了, 先将一个方法头上加上@property,这个方法就变成实例属性了,再加上这个@get_name.setter 装饰器(@属性名.setter)就可以通过赋值来设置属性. python北京周末培训班 https://

JavaScript自己模仿jQuery的一点小代码

function seter(sId) {    var obj = document.getElementById(sId);    return new function () {        var objN = obj;        this.html = function (sHtml) {            objN.innerHTML = sHtml;        };    };} 这样的代码有怎样的作用呢? 假如HTML代码中有如下的内容: <div id="S

【processing】小代码4

translate(x,y);  移动坐标原点到x,y处 rotate(angle); 坐标沿原点顺时针转动angle度 scale(n); 绘制图像放大n倍 pushMatrix() 将当前坐标压入栈 popMatrix() 将坐标弹栈 -------------------------------------- windows系统下 用P3D一直报错,检查的时候还把之前写好的东西给弄没了  郁闷 换linux 终于可以显示了 但是smooth()不能用,说我硬件不支持. 而且linux下写的

一段小代码

<?php echo "<pre>"; //定义想要删除视频的目录 $path = str_replace('\\', '/', 'F:\program\utorrent2.02\downloads'); //更改工作路径 chdir($path); /**function name:del; *@param path, delete root directory; *@param depth, (递归深度) */ function del($path,$depth

小代码2

一个循环实现单链表逆置 node *reverse(node *head) { node * th=NULL,*P=NULL;  while(head)  {         p = head;      head = head->neaxt;   p->head = th;        th = p;   } return th; } //wz609.blog.51cto.com  有我原图 这里体会是模拟走一次  就如同汉诺塔一样  代码的循环由第一次遍历可以记忆 返回值 可以没有就让h