(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,表示程序正常结束。