#include<stdio.h>
void input(int *p) {
int a[5],i;
p=a;
for(i=0; i<5; i++)
scanf("%d ",&a[i]);
}//输入
double fact(int n) {
double sum=1;
int i;
for(i=1; i<=n; i++)
sum=sum*i;
return sum;
}//求阶乘
void output(int *p) {
int i;
int a[5];
input(p);
for(i=0; i<5; i++) {
if(a[i]<1) a[i]=0;
else a[i]=fact(i);
}
for(i=0;i<5;i++)
printf("%.0f ",a[i]);
}//如果这个数小于1 则输出0;
//如果是大于等于1,则输出该数的阶乘
//输出这个数组
int main() {
int a[5],i;
input(a);//输入五个数
output(a);//输出五个数
}
帮你修改好了
#include <stdio.h>
// 输入
void input(int *a, int n)
{
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
}
// 求阶乘
double fact(int n)
{
double sum = 1;
for (int i = 1; i <= n; i++)
sum = sum * i;
return sum;
}
// 如果这个数小于1 则输出0;
// 如果是大于等于1,则输出该数的阶乘
void output(int *a, int n)
{
for (int i = 0; i < n; i++)
{
if (a[i] < 1)
printf("0 ");
else
printf("%.0lf ", fact(a[i]));
}
}
int main()
{
const int n = 5;
int a[n];
input(a, n); // 输入五个数
output(a, n); // 输出五个数
}
你想问什么?粗略看了一下代码,input函数错了