C语言一些例子(九九乘法表,杨辉三角形,九宫算法)

例子、九九乘法表

#include<stdio.h>

int main()
{
  int i,j;
  for(i=1;i<=9;i++)
  {
for(j=1;j<=i;j++)
printf("%d*%d=%d ",j,i,i*j);
printf("\n");
  }
  return 0;
}

执行结果:

1*1=1 
1*2=2 2*2=4 
1*3=3 2*3=6 3*3=9 
1*4=4 2*4=8 3*4=12 4*4=16 
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 

例二、打印等腰三角形

#include<stdio.h>

void printf_trangle(int n);
int main()
{
   int n;
  printf("input trangle lengh\n");
  scanf("%d",&n);
  printf_trangle(n);
  return 0;
}


void printf_trangle(int n)
{
    int i,j;
        for(i=1;i<=n;i++)
        {
            for(j=0;j<n-i;j++)
                        printf(" ");
                for(j=0;j<2*i-1;j++)
                        printf("*");
                printf("\n");
        }
}

运行结果:

input trangle lengh
10
         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
*******************

例子三:九宫算法(行,竖,对角线相加都等于15,并且数字使用1~9,不能重复)

#include<stdio.h>

int check_if_ok(int *p)
{
	int i,j,temp[9],temp1[9];
	if(p[0]+p[1]+p[2]!=15)    
		return -1;
	if(p[3]+p[4]+p[5]!=15)   
		return -1;
	if(p[6]+p[7]+p[8]!=15)
		return -1;
	
	if(p[0]+p[3]+p[6]!=15)    
		return -1;
	if(p[1]+p[4]+p[7]!=15)   
		return -1;
	if(p[2]+p[5]+p[8]!=15)
		return -1;
	
	if(p[0]+p[4]+p[8]!=15)    
		return -1;
	if(p[2]+p[4]+p[6]!=15)   
		return -1;
	for(i=0;i<9;i++)
	{
		temp[i]=p[i];
		for(j=0;j<9;j++)
		{
			if(i==j)
				continue;
			temp1[j]=p[j];
			if(temp[i]==temp1[j])
				return -1;   /* 如果找的到相同的数字表示不符合规定 */
		}
	}
	printf("%d  %d  %d \n",p[0],p[1],p[2]);
	printf("%d  %d  %d \n",p[3],p[4],p[5]);
	printf("%d  %d  %d \n",p[6],p[7],p[8]);	
	printf("\n\n");
	return 0;
}

void main()
{
	int a[9]={1,2,3,4,5,6,7,8,9};
	int b[9]={0};
	int i,j,k,m;
	for(j=1;j<10;j++)
	{
		b[0]=j;
		for(i=1;i<10;i++)
		{
			if(i==j) 
				continue;
			b[1]=i;
			for(k=1;k<10;k++)
			{
				if((k==i)||(k==j))
					continue;
				b[2]=k;
				for(m=1;m<10;m++)
				{
					if((m==i)||(m==j)||(m==k))
					continue;
					b[3]=m;
					b[6]=15-b[0]-b[3];
					b[4]=15-b[2]-b[6];	
					b[7]=15-b[1]-b[4];
					b[5]=15-b[3]-b[4];	
					b[8]=15-b[2]-b[5];	
					check_if_ok(b);
				}
			}
		}
	}
}

运行结果:

2  7  6 
9  5  1 
4  3  8 


2  9  4 
7  5  3 
6  1  8 


4  3  8 
9  5  1 
2  7  6 


4  9  2 
3  5  7 
8  1  6 


6  1  8 
7  5  3 
2  9  4 


6  7  2 
1  5  9 
8  3  4 


8  1  6 
3  5  7 
4  9  2 


8  3  4 
1  5  9 
6  7  2 

    原文作者:杨辉三角问题
    原文地址: https://blog.csdn.net/qq_21792169/article/details/51533504
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞