C语言小练习

1. 打印100~200之间的素数

作为素数的特点就是不被除了1和本身以外的数整除,可以思考设两个变量,用A/B,B∈[2,A),若不被整除,则为素数

#define _CRT_SECURE_NO_DEPRECATE

#include<stdio.h>

int main()
{
	int i = 0;
	for (i = 100;i <= 200;i++)
	{
		int j = 0;
		for (j = 2;j < i;j++)
		{
			if (i%j == 0)
			{
				break;
			}
		}
		//上述循环结束后,如果j=i,说明[2,i)之间的所有数据都不能被i整除,则i为素数
		if (j == i)
		{
			printf("%d\n", i);
		}
	}
	return 0;
}

当然这是最简单的计算方法,参考其他的博主计算方式,在[2,i/2]区间没有输可以整除就可以判断i是否为素数,用以减少没有意义的计算

但是我认为这个区间应该是[2,i/3],取2时就可以判断其是否能够被i/2整除,所以减少的计算可以更多,选取到i/3

#define _CRT_SECURE_NO_DEPRECATE

#include<stdio.h>

int main()
{
	int i = 0;
	for (i = 100;i <= 200;i++)
	{
		int j = 0;
		for (j = 2;j <= i/3;j++)
		{
			if (i%j == 0)
			{
				break;
			}
		}
		if (j > i/2)
		{
			printf("%d\n", i);
		}
	}
	return 0;
}


2. 输出乘法口诀表

要实现乘法口诀表,最重要的是两个问题:行递增和列递增。其次就是打印出来要整洁,缩进一致,这里可以在打印的时候用到%-2d——打印时自动打印两位,不足两位时在右边补空格。

int main()
{
	int i = 0;
	int j = 0;
	for (i = 1; i <= 9; i++)
	{
		for (j = 1; j <= i ; j++)
		{
			printf("%d * %d = %-4d", i, j, i*j);
			//打印时自动打4位,不够两位的在右边补空格
		}
		printf("\n");
		//每打印一行就换一行
	}
	return 0;
}

这里由于打印出来的效果不好,所以将%-2d改为%-4d,打印出来的效果更佳,大家可以根据自己的需要修改这个数字的大小
3. 判断1000年---2000年之间的闰年

闰年:可以被4和400整除但不能被100整除的年份

核心问题就是一个年份在被整除后的结果同样要适用于另一个条件,这里考虑用if 和else if 语句进行编译

int main()
{
	int i = 0;
	int j = 4;
	for (i = 1000; i <= 2000; i++)
	{
		if (i%j == 0 & i % 100 != 0)
			//如果i能够被4整除但不能被100整除,那i就是闰年
		printf("%d\n", i);
		else if (i%400 == 0)
			//如果不是上种情况,i能够被400整除,i也是闰年
		printf("%d\n", i);
	}
	return 0;
}

这几个题的核心就是要把握循环和变量在代码中的应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值