
正文
c语言函数调用经典例题 c语言函数调用知识点
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言编程调用函数求水仙花数
水仙花数是指一个 n 位数 ( n≥3 )c语言函数调用经典例题,每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)。
所以可以依次通过模除求得每个位上的值c语言函数调用经典例题,然后做n次幂后相加,再判断是否与本身相等,从而得到是否为水仙花数的结论。
以求所有三位数水仙花数为例,代码如下,其它相似。
#includestdio.h
#includestdlib.h
#includestdbool.h
int cube(const int n){//计算立方。如果是四位则是四次方,以此类推。
return n*n*n;
}
int isNarcissistic(const int n){//计算是否为水仙花数。
int hundreds=n/100;//百位
int tens=n/10-hundreds*10;//十位
int ones=n%10;//个位
return cube(hundreds)+cube(tens)+cube(ones)==n;//如果相等,则为水仙花数。
}
int main(void){
int i;
for(i=100;i1000;++i){//对所有三位数判断。
if(isNarcissistic(i))//如果是则输出。
printf("%d\n",i);
}
return 0;
}
相关问答
Q1: C语言编程问题!!急用。。。 用递归算法编写,求1到n的累加和,在主函数中调用
#include stdio.h
unsigned int func(unsigned int n)
{
return (n == 1)? 1 c语言函数调用经典例题: n * func(n-1);
}
int main(void)
{
unsigned int n = 0, rval = 0;
printf("Input data:");
scanf("%u", n);
if (n == 0)
{
printf("Input error.\n");
return -1;
}
rval = func(n);
printf("%u!=%u\n", n, rval);
return 0;
}
Q2: 一道简单的C语言题
定义函数指针
void (*p)(int *,int *)
完整测试如下c语言函数调用经典例题:
void fun(int *x,int *y)
{
cout*xendl*yendl;
}
int main()
{
int a=10,b=20;
void (*p)(int *,int *);
p=fun;
p(a,b);
return 0;
}
结果如下c语言函数调用经典例题:
Q3: 关于C语言中的函数调用问题,出现了以下错误,现贴出程序,请大家帮忙看一看,我是菜鸟....万分感谢!
怀疑你这段代码是不是书上摘来的,连main()函数都没有,修改了下代码,上面四个错误不再出现了,你再把main()函数补上,应该可以运行了。
#include stdio.h
#include "math.h"
#include "stdlib.h"
void iirbcfpass(ns,n,f1,f2,f3,f4,db,b,a)
double b[],a[],f1,f2,f3,f4,db;
int ns,n;
{
int k;
double *d,*c;
double omega,lamda,esslon,fl,fh; //带通不需要omega;lamda;warp();bpsub();omin(),cosh1()
void bwtf();//函数声明
//double cosh1(),warp(),bpsub();omin();
void fblt();//函数声明
fl=f2;
fh=f3;
for (k=0;kns;k++)
{
bwtf(2*ns,k,4,d,c); //求归一化L阶的每一阶的分子、分母系数
fblt(d,c,n,fl,fh,b[k*(n+1)+0],a[k*(n+1)+0]); //计算出低通滤波器系数,然后转化成为带通系数
}
}
static void bwtf(ln,l,k,n,d,c) //求归一化L阶的每一阶的分子、分母系数
int ln,k,n;
double d[],c[];
{
int i;
double pi,tmp;
pi=4.0*atan(1.0);
d[0]=1.0;
c[0]=1.0;
for (i=1;in;i++)
{
d[i]=0.0;
c[i]=0.0;
}
tmp=(k+1)-(ln+1.0)/2.0;
if (tmp==0.0)
{
c[1]=1.0;
}
else
{
c[1]=-2.0*cos((2*(k+1)+ln-1)*pi/(2*ln));
c[2]=1.0;
}
}
static void fblt(d,c,n,fln,fhn,b,a)//计算出低通滤波器系数,然后转化成为带通系数
int n;
double fln,fhn,d[],c[],b[],a[];
{
int i,k,m,n1,n2,ls;
double pi,w,w0,w1,w2,tmp,tmpd,tmpc,*work;
double combin();
void bilinear();
pi=4.0*atan(1.0);
w1=tan(pi*fln);
for (i=n;i=0 ;i-- )
{
if(c[i]!=0.0 || (d[i]!=0.0))
break;
}
m=i; //标示非0值的位置
n2=2*m;
n1=n2+1;
work=malloc(n1*n1*sizeof(double));
w2=tan(pi*fhn);
w=w2-w1;
w0=w1*w2;
for (i=0;i=n2 ;i++ )
{
work[0*n1+i]=0.0; //小心1与l
work[1*n1+i]=0.0;
}
for (i=0;i=m ;i++ )
{
tmpd=d[i]*pow(w,(m-i));
tmpd=c[i]*pow(w,(m-i));
for (k=0;k=i ;k++ )
{
ls=m+i-2*k;
tmp=combin(i,i)/(combin(k,k)*combin(i-k,i-k));
work[0*n1+ls]+=tmpd*pow(w0,k)*tmp;
work[1*n1+ls]+=tmpc*pow(w0,k)*tmp;
}
}
for (i=0;i=n2 ;i++ )
{
d[i]=work[0*n1+i];
c[i]=work[1*n1+i];
}
free(work);
bilinear(d,c,b,a,n);//合并每个级的系数到一个大的传递函数系数集合
}
static double combin(i1,i2)
int i1,i2;
{
int i;
double s;
s=1.0;
if (i2==0) return(s);
for (i=i1;i(i1-i2) ;i-- )
{
s*=i;
}
return(s);
}
static void bilinear(d,c,b,a,n)
int n;
double d[],c[],b[],a[];
{
int i,j,n1;
double sum,atmp,scale,*temp;
n1=n+1;
temp=malloc(n1*n1*sizeof(double));
for (j=0;j=n ;j++ )
{
temp[j*n1+0]=1.0;
}
sum=1.0;
for (i=1;i=n;i++)
{
sum=sum*(double)(n-i-1)/(double)i;
temp[0*n1+i]=sum;
}
for (i=1;i=n ;i++ )
for (j=1;j=n ;j++ )
{
temp[j*n1+i]=temp[(j-1)*n1+i]-temp[j*n1+i-1]-temp[(j-1)*n1+i-1];
}
for (i=n;i=0 ;i-- )
{
b[i]=0.0;
atmp=0.0;
for (j=0;j=n ;j++ )
{
b[i]=b[i]+temp[j*n1+i]*d[j];
atmp=atmp+temp[j*n1+i]*c[j];
}
scale=atmp;
if (i!=0)
{
a[i]=atmp;
}
}
for (i=0;i=n ;i++ )
{
b[i]=b[i]/scale;
a[i]=a[i]/scale;
}
a[0]=1.0;
free(temp);
}
Q4: 两道C语言的题,求解(高分)
第一题c语言函数调用经典例题:
#include stdio.h
float he(float a,float b);
float cha(float a,float b);
void main()
{
float x,y,s,c;
printf("请输入两个浮点数: ");
scanf("%f%f",x,y);
s=he(x,y);
c=cha(x,y);
printf("两个浮点数c语言函数调用经典例题的和值是%.2f\n",s);
printf("两个浮点数c语言函数调用经典例题的差值是%.2f\n",c);
}
float he(float a,float b)
{
return a+b;
}
float cha(float a,float b)
{
if (a=b)
return a-b;
else
return b-a;
}
第二题c语言函数调用经典例题:
#include stdio.h
int max(int a,int b,int c);
int min(int a,int b,int c);
void main()
{
int x,y,z;
printf("请输入三个数:");
scanf("%d%d%d",x,y,z);
printf("三个数选出最大数是%d\n",max(x,y,z));
printf("三个数选出最小数是%d\n",min(x,y,z));
}
int max(int a,int b,int c)
{
if (a=ba=c)
return a;
if (b=ab=c)
return b;
else
return c;
}
int min(int a,int b,int c)
{
if (a=ba=c)
return a;
if (b=ab=c)
return b;
else
return c;
}
c语言函数调用经典例题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言函数调用知识点、c语言函数调用经典例题的信息别忘了在本站进行查找喔。








