用c语言利用指针变量作为函数参数,从主函数里调用函数f1判断任意输入的某个正整数是否为素数,并返回其阶乘值。
时间: 2024-02-09 08:12:02 浏览: 83
好的,下面是用C语言利用指针变量作为函数参数,从主函数里调用函数f1判断任意输入的某个正整数是否为素数,并返回其阶乘值的代码:
```c
#include <stdio.h>
int f1(int *n) {
int i, flag = 1, result = 1;
for (i = 2; i < *n; i++) {
if (*n % i == 0) {
flag = 0;
break;
}
}
if (flag) {
for (i = 1; i <= *n; i++) {
result *= i;
}
return result;
} else {
return -1;
}
}
int main() {
int n, res;
printf("请输入一个正整数:\n");
scanf("%d", &n);
res = f1(&n);
if (res == -1) {
printf("%d不是素数!\n", n);
} else {
printf("%d是素数,其阶乘为%d\n", n, res);
}
return 0;
}
```
首先,我们定义了一个函数f1,该函数的参数为一个指向整型变量的指针变量n。在函数内部,我们利用了for循环和if语句来判断n是否为素数。如果n是素数,则继续利用for循环计算n的阶乘并返回结果;如果n不是素数,则返回-1。
在主函数中,我们先通过scanf函数从键盘输入一个正整数n,并将其赋值给变量n。然后,我们调用函数f1,并将n的地址通过指针传递给函数。根据函数的返回值,我们输出n是否为素数以及其阶乘值。
注意:在函数调用时,我们需要将n的地址通过指针传递给f1函数,因此需要在变量名前加上&符号。
阅读全文