一、判断100到200之间的素数
#include<stdio.h>
#include<math.h>
int main(){
int i;
int j;
for(i=100;i<=200;i++){
/*判断i是否为素数
素数判断的规则
试除法
产生2-根号i*/
for(j=2;j<=sqrt(i);j++){
if(i%j==0)
break;
//if成立不需再j++直接跳出循环
}
//出循环可以是素数,也可以不是素数
if(j>sqrt(i)){
printf("%d是素数 ",i);
}
}
return 0;
}
这段代码是用C语言编写的,目的是找出100到200之间的所有素数,并打印出来。下面是对这段代码的详细解释:
1. `#include<stdio.h>` 和 `#include<math.h>`:这两个预处理指令分别包含了标准输入输出库和数学库,这样我们就可以使用`printf`函数和`sqrt`函数。
2. `int main()`:这是程序的主函数,程序从这里开始执行。
3. `int i;` 和 `int j;`:这里定义了两个整型变量`i`和`j`,用于循环控制。
4. `for(i=100;i<=200;i++)`:这是一个外部循环,它遍历从100到200的所有整数。
5. 内部循环 `for(j=2;j<=sqrt(i);j++)`:这个循环用于检查当前的`i`是否是素数。素数是指只能被1和它本身整除的大于1的整数。这个循环从2开始,一直到`sqrt(i)`,因为一个数如果可以分解为两个数的乘积,那么至少有一个因子小于或等于它的平方根。
6. `if(i%j==0) break;`:如果`i`能被`j`整除,那么`i`就不是素数,因此跳出内部循环。这里的`break`语句会立即结束内部循环,不再执行后续的`j++`操作。
7. `if(j>sqrt(i))`:这个条件判断用于确定`i`是否是素数。如果内部循环正常结束(即`j`的值超过了`sqrt(i)`),那么说明`i`没有被任何小于或等于其平方根的数整除,因此`i`是素数。
8. `printf("%d是素数 ", i);`:如果`i`是素数,就打印出`i`是素数的信息。
9. `return 0;`:主函数返回0,表示程序正常结束。
总结:这段代码通过两层循环来检查100到200之间的每个数是否是素数。内部循环使用试除法来检查一个数是否能被小于或等于其平方根的数整除。如果一个数不能被任何这样的数整除,那么它就是素数。程序将所有找到的素数打印出来。
二、九九乘法表
#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
在这个表中,每行的数字乘法对应于当前行数。例如,第五行包括了1乘以5直到5乘以5的结果。每一列的第一个数字代表乘数,第二个数字代表被乘数,而乘积则是两个数字相乘的结果。
三、求指定字符的字符串长度
在C语言中,要计算字符串的长度,通常使用strlen
函数,它是C标准库中的一部分。这个函数会计算字符串中字符的数量,直到遇到第一个空字符'\0'
(即字符串的终止符)。下面是一个使用strlen
函数计算字符串长度的例子。
#include <stdio.h>
#include <string.h> // 引入字符串库
int main() {
char str[] = "Hello, World!"; // 定义一个字符串
int length;
length = strlen(str); // 计算并获取字符串的长度
printf("The length of the string \"%s\" is: %d\n", str, length);
return 0;
}
下面字符串是用户输入的,或者是通过其他方式获取的,可以使用如下代码段:
#include <stdio.h>
#include <string.h>
int main() {
char str[100]; // 假设字符串最大长度为99,加上一个空字符
int length;
printf("Enter a string: ");
fgets(str, sizeof(str), stdin); // 使用fgets安全地读取一行字符串
// 如果读取的字符串带有换行符,替换为字符串终止符
str[strcspn(str, "\n")] = 0;
length = strlen(str); // 计算字符串长度
printf("The length of the string \"%s\" is: %d\n", str, length);
return 0;
}
上述代码中,
fgets
函数用于从标准输入读取一行文本,并将其存储在str
数组中。strcspn
函数用于找到换行符所在的索引,并将其替换为字符串终止符。这样做是因为fgets
会读取换行符并将其包含在字符串中,而我们通常不希望在计算字符串长度时包括换行符。最后,strlen
函数计算并返回字符串的长度,不包括终止符。