#include <stdio.h> /************found************/ int fun (n) { int c; /************found************/ if(n=1) c = 10 ; else c= fun(n-1)+2; return(c); } main() { int n; printf("Enter n : "); scanf("%d",&n); printf("The result : %d\n\n", fun(n)); }用C语言
时间: 2023-07-01 15:23:46 浏览: 96
这段代码的作用是计算一个数列的第n项的值,其中数列的递推式为:a(n) = a(n-1) + 2,其中a(1) = 10。下面是完整代码:
```
#include <stdio.h>
int fun(n) {
int c;
if (n == 1)
c = 10;
else
c = fun(n - 1) + 2;
return c;
}
int main() {
int n;
printf("Enter n: ");
scanf("%d", &n);
printf("The result: %d\n\n", fun(n));
return 0;
}
```
在主函数中,首先要求用户输入一个整数n,然后调用函数fun计算数列的第n项的值,并输出结果。
相关问题
)给定程序 c10-2-2.c 的功能是:求两个正整数 m,n 之间的非素数之和(包含 m 和 n)。程 序运行结果如图 10-5 所示,请把程序补充完整。 图 10-5 程序 c10-2-2.c 的运行结果 /* c10-2-2.c */ #include <math.h> #include <stdio.h> /************found************/ _______(1)________ int main() { int m=2,n=20,i,s; s = 0; for ( i=m; i<=n; i++) /************found************/ if( ___(2)___) s += i; printf("Sum is: %d\n",s); return 0; } /************found************/ int prime( __(3)__) { int k,j; k=sqrt(m); for (j=2;j <= k; j++) if (m % j == 0) break; if( j<=k ) return 0; else return 1 ; }
程序的完整代码如下:
```c
/* c10-2-2.c */
#include <math.h>
#include <stdio.h>
int prime(int);
int main() {
int m = 2, n = 20, i, s;
s = 0;
for (i = m; i <= n; i++) {
if (!prime(i)) s += i;
}
printf("Sum is: %d\n", s);
return 0;
}
int prime(int m) {
int k, j;
k = sqrt(m);
for (j = 2; j <= k; j++)
if (m % j == 0) break;
if (j <= k)
return 0;
else
return 1;
}
```
程序的功能是求两个正整数 m,n 之间的非素数之和(包含 m 和 n)。其中,prime 函数用于判断一个数是否为素数,如果是素数返回 1,否则返回 0。在主函数中,通过循环从 m 遍历到 n,对于每个数判断是否为素数,如果不是素数则加到 s 变量中。最终输出 s 的值。
给定程序 c10-2-6.c 的功能是:求一维数组 a 中值为偶数的元素之和。程序的运行结果 如图 10-9 所示,请改正程序中的错误,并运行出正确的结果。 图 10-9 程序 c10-2-6.c 的运行结果示例 /* c10-2-6.c */ #include <stdio.h> /************found************/ void sum ( int arr[ ], int n ) { int i,s; s = 0; for ( i=0; i<n; i++) /************found************/ if (arr[i] % 2 == 0) s = s + i; return (s); } int main() { int a[10]={10,4,2,7,3,12,5,34,5,9},s; /************found************/ s=sum( a[10] ); printf("The result is: %d\n", s); return 0; }
程序中的错误有:
1. 函数 sum 的返回值类型应该是 int,而不是 void。
2. 函数 sum 中求和的代码有误,应该累加数组元素的值,而不是下标。
改正后的程序如下:
```
#include <stdio.h>
int sum(int arr[], int n) {
int i, s;
s = 0;
for (i = 0; i < n; i++) {
if (arr[i] % 2 == 0) s = s + arr[i];
}
return s;
}
int main() {
int a[10] = {10, 4, 2, 7, 3, 12, 5, 34, 5, 9}, s;
s = sum(a, 10);
printf("The result is: %d\n", s);
return 0;
}
```
输出结果应该是:The result is: 64
阅读全文