每天几道题——C语言(2)

(1)有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

#include<stdio.h>
 
int main()
{
	int i, j, k;
	int s = 0;
	for ( i = 1; i < 5; i++)
		for(j=1;j<5;j++)
			for (k = 1;k < 5;k++)
			{
				if (i!=k&&i!=j&&j!=k)
				{
					printf("%d\n", i *100+j*10+k);
					s++;
				}
			}
	printf("一共可以生成%d个三位数\n", s);
	return 0;
}

代码分析:

#include<stdio.h>:这是预处理指令,用于包含stdio.h头文件,该头文件包含了输入输出相关的函数和常量的声明。

int main():这是程序的入口函数,所有的C程序都必须包含一个main函数。

变量的声明和初始化:在代码中定义了整型变量i、j、k和s,并初始化s为0。

循环结构(for循环):使用了三层嵌套的for循环来生成所有可能的三位数。通过改变i、j和k的值,遍历1到4之间的所有数字。

条件判断(if语句):使用条件判断语句if (i!=k && i!=j && j!=k)来判断三个数字是否相等,以排除重复数字的情况。(逻辑与&&两边都为真)

输出函数(printf):使用printf函数输出生成的三位数和三位数的总个数。

计数器变量:使用变量s来统计生成的三位数的个数,在每次生成一个数时,将s的值加1。

返回值:通过return语句返回0,表示程序正常结束。

(2)判断101-200之间有多少个素数,并输出所有素数。

#include<stdio.h>
 
int main()
{
	int i,j,m=0,l=1;
	for (i = 101;i < 201;i++)
	{
		for (j = 2;j < i;j++)
		{
			if (i % j == 0)
			{
				l = 0;
				break;
			}
		}
		if (j==i)
		{
			m++; //个数加一  
			printf(" %d ", i);  
			if (m % 5 == 0) 
				printf("\n");
		}
	}
	printf("\n一共有%d个素数\n", m);
	return 0;
}

数学知识:素数(质数):一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。

代码分析:

#include<stdio.h>:这是预处理指令,用于包含stdio.h头文件,该头文件包含了输入输出相关的函数和常量的声明。

int main():这是程序的入口函数,所有的C程序都必须包含一个main函数。

变量的声明和初始化:代码中使用了整型变量i、j、m和l,并初始化m为0,l为1。

循环结构(for循环):使用了两层嵌套的for循环。外层循环控制i的取值范围为101到200,内层循环控制j的取值范围为2到i-1。

条件判断(if语句):使用条件判断语句if (i % j == 0)来判断i是否能够整除j,如果能够整除,则将l的值设为0,并使用break语句跳出内层循环。

判断素数:通过判断内层循环是否执行到最后一次循环(即j的值等于i),来确定i是否为素数。如果j等于i,则表示i没有被2到i-1的任何数字整除,即i为素数。

输出函数(printf):使用printf函数输出找到的素数,每5个素数输出一行。使用变量m来计数素数的个数。

返回值:通过return语句返回0,表示程序正常结束。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值