c学习笔记(3)

前面列举了几个简单的例子,在这里就说一下,结构稍微多一点的

目录

1.打印五组24678

2.打印下列数字

3,判断是否结婚

4,打印乘法表

5,打印正三角


1.打印五组24678

        第一种方法就相对简单一些,直接输出24678,循环五次,但是在这用一下别的方法

(1)因为是要打印五次,所以最外层的循环,我们可以想到用五次循环

(2)对于内部的内容来说,因为每次打的都是一样,就可以在设置一个循环是打印24678

(3)因为并不是很规律,2.4.6每次都是进行加2得操作,后续可以进行一个判断,后续加几

#include <stdio.h>
/*
打印5组:24678
*/
int main ()
{
	int zu,shu;
	for (  zu=1;zu<=5;zu++)//外层的五次循环
	{
		for (  shu=2;shu<=8;shu+=2)//从2开始打,2.4.6,当遇到6是,进行判断
		{
			printf("%i ",shu);
			if (shu==6) 
			{
				printf("%i ",shu+1);
			} 
			if (shu==8) 
			{
				printf("\n");
			} //当等于6得时候,进行加1打印,得到7,因为还是小于8,在进行循环,直到等于8的时候,进行退出
		}
	}
	return 0;
} 

2.打印下列数字

打印如下格式的数字
1       2       3       4       5
2       3       4       5       6
3       4       5       6       7
4       5       6       7       8
        首先这就是很有规律的4*5得图形,碰到这样的就可以直接考虑,俩层for循环,先对一行的数值进行打印,然后再是第二行,以此类推,然后在观察每一行的初始值,第二行的开始值就相当于第二行的值,因此再开始设计的时候,第二行的初始值就直接设成第二行的值

int main()
{
	int h,s;//在这里h设置的是外层循环四次,就是四行     s设置的是循环5次,打印的列值
	for(  h=1 ;h<=4 ;h=h+1 )
	{
		for(  s=h ;s<=h+4 ;s=s+1 )
		{
			printf("%i\t",s);
		}进行列值循环的时候,列值初试值等于行值,并且最后结束的时候,列值不能大于行值加4,大于之后就结束
		printf("\n"); 
	}
	return 0;
} 

3,判断是否结婚

#include <stdio.h>
/*
	判断一个人能否结婚:
	按法律:男年满22周岁 女年满20周岁
*/
int main205()
{
	int age=21;
	//C没有 boolean布尔     性别: 男  女    
	int sex=0;//在C语言中 非0的数字(比如1)代表逻辑‘真’ 0代表逻辑‘假’
			  //此例中:1 代表男  0 代表女	
	if (sex ) 
	{
		if (age>=22) 
		{
			printf("男的 能\n");
		} 
		else
		{
			printf("男的 不能\n");	
		}
	} //这部分是对于男生来说
	else
	{
		if (age>=20) 
		{
			printf("女的 能\n");
		} 
		else
		{
			printf("女的 不能\n");
		}
	}//这部分是对于女生来说
	return 0;
} 

这个主要是想对sex这个进行说明,在我们使用判断条件中,1,0往往分别代表真假,当然这个1并不是完全必须是1,只要是任何非0得数都是可以得

4,打印乘法表

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

首先观察有行列,就肯定有俩层循环,再观察再每一行进行输出的时候,列值永远不会大于行值,因此可以将列值终止值设置为行值

int main206  ()
{
	int h,k;//h代表设置的行值,k代表设置的列值
	for (  h =1; h <10; h++)//行值从1行到9行
	{
		for (  k =1; k <=h; k++)//列值从1开始,到等于行值时候结束
		{
			printf("%d×%d=%-2d\t",k,h,h*k);
         //%-2d的含义: 整数占两个位置,不足用空格占位。 -号为左对齐之意。
		}
		printf("\n");
	}
	return 0;
} 

5,打印正三角

打印如下图形
    *
   ***
  *****
 *******
*********

这个例子感觉还是很有意思的,都可以试试各种样子的三角形

首先还是分析一下,很明显又是俩层循环,但是再第二层循环中,空格是有规律的,*也是有规律的,因此,在设计的时候,可以考虑,一个大循环里面套着俩层循环,并且空格的数量是从4到0,*是行数乘2-1

int main208()
{
	int h,k,o;//h代表行,k代表空格循环,o代表*循环
	for( h=1 ;h<=5 ; h=h+1)
	{
		//打印空格
		for( k=1 ;k<=5-h ;k++ )
		{
			printf(" ");
		}
		//打印*
		for( o=1 ;o<=2*h-1 ;o++ )
		{
			printf("*");
		}
		//换行
		printf("\n");
	} 
	return 0;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值