C语言编写函数,要求该函数可以接受N个整数(N从控制端输入),并打印出N个整数相加?
#include
#include
void main()
{
int Num,i,j;
double dResult;
dResult = 0;
printf("Please Enter a Number:
");
scanf("%d",&Num);
j = 0;
for(i=1;i<=Num;i++){
j = j + i;
dResult += (i+0.0)/j;
}
printf("The Result is %lf",dResult);
getch();
return;
}
其中dResult += (i+0.0)/j;
这一句中,i+0.0是一个类似于强制类型转换的操作,因为C中如果整数除以整数结果肯定为整数,不会为double型。当然也可以将这一句修改为dResult += (double)i/j;
编程实现计算n!,也就是n*(n-1)*(n-2)*....*1,可以通过递归函数来实现,具体实现方法:
#include int Func(int n){if(n < 2)
return 1;
else
return n*Func(n-1);
}
void main(){int n =0,m=0;
printf("请输入一个正整数:")
scanf("%d",&n);
m=Func(n);
printf("%d!=%d
",n,m);}
在以上程序代码中,Func()为递归函数,主函数main()中接收键盘输入整数值后,调用Func()递归函数,首层m=n*(n-1)!,继续递归调用,m=n*(n-1)(n-2)!,这样逐层递归,直到计算出N!。
程序输出结果如下:
扩展资料:
所谓n的阶乘就是从1到n的乘积,所以除了递归法来实现以外,其实我们也可以通过一个for循环,从1到n依次求积同样可以达到计算n!的目地。
具体实现代码如下:
#include
int main() {int n,i,s=1;scanf("%d",&n);
for(i=1;i<=n;i++)//for循环求累积
s=s*i;
printf("%d
",s);
return 0;
}
/*运行结果:(例如求5的阶乘)5120*/
#include <stdlib.h>
void calc(int n){
int sum=0,i,*num;
num=(int*)calloc(n,sizeof(int));//动态定义数组
for(i=0;i<n;i++){
printf("请输入第%d个数:",(i+1));
scanf("%d",&num[i]);
sum+=num[i];
}
printf("这%d个数字的和是%d!\n",n,sum);
}
void main(){
int input;
printf("请输入要求和的数字个数:");
scanf("%d",&input);
while(input<=0||input>100000){
printf("你输入的数字超出范围!\n\n");
printf("请输入要求和的数字个数:");
scanf("%d",&input);
}
calc(input);
}
#include<stdio.h>
#define N 256
void main() { int i,n,s,a[N];
scanf("%d",&n); if ( n>N ) n=N;
s=0; for ( i=0;i<n;i++ ) { scanf("%d",&a[i]); s+=a[i]; }
printf("%d",a[0]); for ( i=1;i<n;i++ ) printf("+%d",a[i]); printf("=%d\n",s);
}
C语言函数三要素是什么
分析:可以编写两个函数,一个用来计算阶乘,一个用来计算累加的和。运行结果:1!+2!+...+9!+10! = 1215752192 函数声明和函数原型 C语言代码由上到下依次执行,函数定义要出现在函数调用之前。但是,如果在函数调用前进行了函数声明,那么函数定义就可以出现在任何地方了,甚至是其他文件。函数声明的...
C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归...
1。include "stdio.h"\/\/#define RECURSION 1 ifdef RECURSION long fact(int n){ if(n<1) return 1;return n*fact(n-1);} else long fact(int n){ long t=1;for(int i=2;i<=n;i++)t*=i;return t;} endif main(){ long s=0;for(int i=1;i<=10;i++)s+=fact(i);p...
用c语言程序编写:给定y=发(x)函数,要求输入x的值,求y的值
float f(float x){ float y=0.0f;\/*通过公式运算求出y的值,例如 y=x*2;*\/ return y;} 好歹给一个公式啊,楼主可以根据公式把代码补充完整
用c语言编写一个程序。要求编写一个求2的n次方的函数实现。求满足以下条...
include <stdio.h> include <stdlib.h> int main() { int i=2;int n=0;int s=0;for (;s+i<1000; i*=2, ++n)s+=i;printf("%d",n);system("pause");return 0;}
c语言。求1!+2!+3!+……+10!。要求编写求N的阶乘的函数
所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n,用公式表示就是:1×2×3×4×…×(n-2)×(n-1)×n=n!include <stdio.h> int main(){ int i,j,n;double sum=1,k=0;scanf("%d",&n);for(j=1;j<=n;j++){ sum=1;for(i=1;i<=j;i++)sum=...
C语言编写一个函数,根据形参x和y的关系,返回不同的值,具体要求是:如果x...
include<stdio.h>int f(int x,int y) { int z=0; if ( x>y ) z=1; else if ( x<y ) z=-1; return z; }void main() { int a,b,c; scanf("%d%d",&a,&b); c=f(a,b); printf("%d\\n",c);}
用C语言编写函数:求一批整数中最大值和最小值的差。
根据程序的要求,我们应该要求出这批数中的最大和最小值,然后进行做差的操作,这样就可以得出最大值与最小值的差值。你程序的问题是函数输入的参数有问题max_main(a[],10)应该修改成max_main(a,10),这样才能正确的调用函数。处理函数正确代码如下:int max_main(int a[], int e) { max =...
请编写函数sum,功能是:用While循环语句求1到n之间(包括n)能被7整除...
以下是使用 Python 语言编写的满足要求的函数:def sum(n):i = 1 s = 0 while i <= n:if i % 7 == 0:s += i i += 1 return s 在该函数中,首先初始化变量 i 和 s,其中 i 用于记录当前处理的整数,s 用于记录能被 7 整除的整数之和。然后使用 while 循环语句,从 1 开始...
C语言编写用函数找出数组的最大值与最小值,然后交换位置(要求函数形参...
include<stdio.h> void fun(int* a,int* b,int* c,int *max,int *min){ max=*a;min=*a;if(*max<*b)max=*b;else if(*min>*b)min=*b;if(*max<*c)max=*c;else if(*min>*c)min=*c;} int main(){ int a=12,b=22,c=111;int max,min;fun(&a,&b,&c,&max,&min...
用C语言写一个删除学生信息的程序。(要求有删除的函数)。
for(i=result; i<n-1; ++i) \/\/最后在main函数中,要将n的值减1 { num[i] = num[i+1]; strcpy(names[i],names[i+1]); math[i] = math[i+1]; english[i] = english[i+1]; computer[i] = computer[i+1]; sum[i] = sum[i+1]; } } return 1; } \/\/10.按姓名删除...
仲岩迪方: 希望对你有帮助!直接写void类型就行了.voidfun(voidarr[],intarrlen)//调用的时候需要的话进行相关的强制类型转换.C的话就是这样{//.....写具体的需求}如果是C++的话,一般都用模板了.
盐山县15683176401: 如何用标准c语言实现某一函数能接受任意类型数据为参数? - ?
仲岩迪方: 直接写void类型就行了. void fun (void arr[],int arrlen)//调用的时候需要的话进行相关的强制类型转换.C的话就是这样 { //.....写具体的需求 }如果是C++的话,一般都用模板了.
盐山县15683176401: c语言编程中自定义函数能不能输入,接受变量 - ?
仲岩迪方: 当然是可以的.
盐山县15683176401: C编程,编一函数,使其接收数组及个数,将元素改变,返回数组元素及个数. - ?
仲岩迪方: 为了使代码简单些,我想多开个跟传入的数组一样大小的动态数组,将数据复制进去,原数组清0 然后在新数组中从头开始找非0数据,找到一个,写入原数组中,计数器++,最后返回计数器. 算法如下:int ChangeArray(int *a,int size) { int i,j; int *b=new int [size]; for(i=0;i<size;i++)b[i]=a[i]; memset(a,0,size); j=0; for(i=0;i<size;i++ { if(b[i]!=0)a[j++]=b[i]; } delete []b; return j; }
盐山县15683176401: c语言 定义一个函数.该函数接受一个int参数,并以long类型返回参数的平方值 详细说明一下,拜托 - ?
仲岩迪方: long fuck ( int x ) { long y = x * x; return y; }
盐山县15683176401: ……C语言初学问题:编写程序,要求在main函数接受一个整型变量,将其作为参数传入IsPrime函数中,…… - ?
仲岩迪方: for(i=2;i{ if(a%i == 0) { return 1; } else { return 2; } } 改成:for(i=2;i{ if(a%i == 0) { return 1; } } return 2;
盐山县15683176401: 用C语言编程 1. 写一个函数,函数接受一个整型参数N,则返回一个包含N个字符的字符串 - ?
仲岩迪方: char * myfunc(int n){char *a=(char *)malloc(sizeof(char)*(n+1));int i=0;for (i=0;i<n;i++)a[i]='a';a[n]='\...
盐山县15683176401: 编一个C语言程序,要求“接受用户输入的数值,该数值表示某个字符的ASCII码,使用putchar()函数显示该字符”?
仲岩迪方: #include<stdio.h> int main() { int c; scanf("%d",&c); putchar(c); }
盐山县15683176401: C语言:编写函数,统计一个字符串的长度 - ?
仲岩迪方: #include<stdio.h> int strl(char *s) //你需要的函数. { int i,k=0; for(i=0;s[i];i++)k++; return k; } void main() //主函数,目的是测试下前面的函数. { printf("%d\n",strl("abcd")); }
盐山县15683176401: 用c语言编写一个函数,提取一个字符串中的所有整数. - ?
仲岩迪方: #include#includemain(){ int i,j=0,k; char a[1000];//长度自己根据实际情况调整 printf("请输入一串字符串:\n"); gets(a); k=strlen(a); for(i=0;i