C语言练习题
打印输出1-30之间的所有素数
思路
这个程序的目标是打印出1到30之间的所有素数。为了实现这个目标,我们首先需要一个函数来判断一个数是否为素数。这就是is_prime
函数的作用。它接受一个整数作为参数,然后通过一个for循环来检查这个数是否可以被2到它的平方根之间的任何整数整除。如果可以,那么这个数就不是素数,函数返回0;否则,这个数就是素数,函数返回1。
然后在main
函数中,我们使用一个for循环来遍历1到30的所有整数。对于每一个整数,我们都调用is_prime
函数来检查它是否为素数。如果是,我们就使用printf
函数将它打印出来。
代码
1 |
|
输入6个整数,仅用指针法实现按由大到小的顺序输出
思路
这个程序的目标是接收用户输入的6个整数,并按照由大到小的顺序输出这些整数。为了实现这个目标,我们首先需要一个函数来对数组进行排序。这就是sort
函数的作用。它接受一个整数指针和一个整数作为参数,整数指针指向我们要排序的数组,整数表示数组的长度。sort
函数使用了冒泡排序算法,通过两层循环来比较并交换数组中的元素,从而实现排序。
然后在main
函数中,我们首先定义了一个长度为6的整数数组。然后,我们使用一个for循环和scanf
函数来接收用户输入的6个整数,并将这些整数存储在数组中。接着,我们调用sort
函数来对数组进行排序。最后,我们使用一个for循环和printf
函数来按照由大到小的顺序输出这6个整数。
代码
1 |
|
解释
1
1 |
这行代码包含了stdio.h
头文件,它是C语言中提供输入/输出功能的库。
1 | int is_prime(int num) { |
这行代码定义了一个名为is_prime
的函数,它接受一个整数num
作为参数。这个函数用于检查num
是否为素数。
1 | if (num <= 1) return 0; |
如果num
小于或等于1,那么它就不是素数,所以我们返回0。
1 | for (int i = 2; i * i <= num; i++) { |
这行代码是一个for循环,用于检查num
是否可以被2到sqrt(num)
之间的任何整数整除。
1 | if (num % i == 0) return 0; |
如果num
可以被i
整除,那么num
就不是素数,所以我们返回0。
1 | } |
如果num
不能被2到sqrt(num)
之间的任何整数整除,那么num
就是素数,所以我们返回1。
1 | int main() { |
这行代码定义了程序的主函数main
。
1 | for (int i = 1; i <= 30; i++) { |
这行代码是一个for循环,用于遍历1到30的所有整数。
1 | if (is_prime(i)) { |
这行代码调用我们之前定义的is_prime
函数,检查当前的整数i
是否为素数。
1 | printf("%d ", i); |
如果i
是素数,我们就打印出来。
1 | } |
这些是闭合前面的if语句和for循环的大括号,以及表示main
函数的结束,return 0;
表示程序执行成功。
2
1 |
这行代码包含了stdio.h
头文件,它是C语言中提供输入/输出功能的库。
1 | void sort(int *arr, int n) { |
这行代码定义了一个名为sort
的函数,它接受一个整数指针arr
和一个整数n
作为参数。arr
指向我们要排序的数组,n
是数组的长度。
1 | for (int i = 0; i < n; i++) { |
这两行代码是两个嵌套的for循环,用于遍历数组中的每一对元素。
1 | if (*(arr + i) < *(arr + j)) { |
这行代码检查当前的两个元素是否满足我们的排序条件(即第一个元素是否小于第二个元素)。
1 | int temp = *(arr + i); |
如果满足排序条件,我们就交换这两个元素的位置。
1 | } |
这些是闭合前面的if语句和for循环的大括号。
1 | int main() { |
这行代码定义了程序的主函数main
。
1 | int arr[6]; |
这行代码定义了一个长度为6的整数数组arr
。
1 | printf("请输入6个整数:\n"); |
这行代码打印出提示信息,告诉用户需要输入6个整数。
1 | for (int i = 0; i < 6; i++) { |
这两行代码是一个for循环,用于从用户那里读取6个整数并存储在数组arr
中。
1 | sort(arr, 6); |
这行代码调用我们之前定义的sort
函数,对数组arr
进行排序。
1 | printf("由大到小的顺序输出为:\n"); |
这行代码打印出提示信息,告诉用户接下来将按照由大到小的顺序输出这6个整数。
1 | for (int i = 0; i < 6; i++) { |
这两行代码是一个for循环,用于按照由大到小的顺序打印出这6个整数。
1 | return 0; |
这行代码表示main
函数的结束,return 0;
表示程序执行成功。