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

本文通过三个典型示例介绍C语言编程技巧:九九乘法表展示嵌套循环的应用;等腰三角形打印演示字符输出控制;九宫算法实现数学问题解决。这些示例有助于初学者理解基本语法和逻辑控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例子、九九乘法表

#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 



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HeroKern

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值