利用指针变量作为函数参数,从主函数里调用函数f1判断任意输入的某个正整数是否为素数,并返回其阶乘值。
时间: 2024-02-09 20:11:51 浏览: 75
好的,我理解了你的问题。以下是一个示例代码,供你参考:
```c
#include <stdio.h>
int f1(int *n);
int main() {
int n, factorial;
printf("请输入一个正整数:");
scanf("%d", &n);
if (f1(&n)) {
printf("%d 是素数\n", n);
} else {
printf("%d 不是素数\n", n);
}
// 计算阶乘
factorial = 1;
for (int i = 1; i <= n; i++) {
factorial *= i;
}
printf("%d 的阶乘是 %d\n", n, factorial);
return 0;
}
int f1(int *n) {
if (*n <= 1) {
return 0;
}
for (int i = 2; i < *n; i++) {
if (*n % i == 0) {
return 0;
}
}
return 1;
}
```
该程序利用指针变量作为函数参数,从主函数里调用函数f1判断输入的正整数是否为素数。如果是素数,则返回1;如果不是素数,则返回0。同时,程序还计算输入正整数的阶乘,并输出结果。
在函数f1中,采用了传递指针的方式,这样在函数中对指针所指向的值进行修改后,可以直接影响到主函数中的变量n。
阅读全文