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;表示程序执行成功。
