①.、新建一个求1到100自然数之和项目.
注意事项:
C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等.从应用的角度,C语言比其他高级语言较难掌握.也就是说,对用C语言的人,要求对程序设计更熟练一些.
C语言中一个完整的函数由函数首部和函数体构成,而且定义函数时两者都是必不可少的.
函数定义的一般形式如下:
类型标识符 函数名(形参表列) // 这是函数首部
// 以下{ }内的是函数体
{
说明部分
执行部分
}
举例说明如下:
// 定义一个不带返回值的函数
// 函数功能:输出形参的值
void fun(int a, int b)
printf("%d, %d\n", a, b);
// 定义一个带返回值的函数
int fun(int a, int b)
return ab ? a : b;
#include stdio.h
int main()
int i,j,sum;
? ? for(j=0;ji;◆◆j)
? ? {
? ? ? ? sum◆=i◆j;
? ? }
printf("%d\n",sum);
return 0;
①.、编写函数func1,实现求两个数的最大公约数.
int
fuc1(int
a,int
b)
if(a%b==0)
return
b;
fuc(b,a%b);
t=fuc1(a,b);//t为a,b最大公约数.
sum=0;
i;
for(i=a;i=b;i◆◆)
sum◆=i;
sum;
k)
if(k==1)
k*fuc(k-1);
t=fuc1(a);//t为a的阶乘.
你的意思是说,输入一些数据,让程序拟合出来一个函数.
这个很复杂.比如我举个例子.
多项式拟合函数polyfit之C语言的源码
#include conio.h
#include stdlib.h
#include math.h
main()
void polyfit(int n,double *x,double *y,int poly_n,double a[]);
system("cls");
polyfit(n,x,y,poly_n,a);
for (i=0;ipoly_n◆1;i◆◆)/*这里是升序排列,Matlab是降序排列*/
printf("a[%d]=%g\n",i,a[i]);
getch();
/*==================polyfit(n,x,y,poly_n,a)===================*/
/*=====n是数据个数 xy是数据值 poly_n是多项式的项数======*/
void polyfit(int n,double x[],double y[],int poly_n,double a[])
int i,j;
double *tempx,*tempy,*sumxx,*sumxy,*ata;
void gauss_solve(int n,double A[],double x[],double b[]);
tempx=calloc(n,sizeof(double));
tempy=calloc(n,sizeof(double));
sumxy=calloc(poly_n◆1,sizeof(double));
ata=calloc((poly_n◆1)*(poly_n◆1),sizeof(double));
for (i=0;in;i◆◆)
tempx[i]=1;
tempy[i]=y[i];
for (sumxx[i]=0,j=0;jn;j◆◆)
sumxx[i]◆=tempx[j];
tempx[j]*=x[j];
for (i=0;ipoly_n◆1;i◆◆)
for (sumxy[i]=0,j=0;jn;j◆◆)
sumxy[i]◆=tempy[j];
tempy[j]*=x[j];
for (j=0;jpoly_n◆1;j◆◆)
ata[i*(poly_n◆1)◆j]=sumxx[i◆j];
gauss_solve(poly_n◆1,ata,a,sumxy);
free(tempx);
free(sumxx);
free(tempy);
free(sumxy);
free(ata);
void gauss_solve(int n,double A[],double x[],double b[])
int i,j,k,r;
double max;
for (k=0;kn-1;k◆◆)
max=fabs(A[k*n◆k]); /*find maxmum*/
r=k;
for (i=k◆1;in-1;i◆◆)
if (maxfabs(A[i*n◆i]))
max=fabs(A[i*n◆i]);
r=i;
if (r!=k)
for (i=0;in;i◆◆) /*change array:A[k]A[r] */
max=A[k*n◆i];
A[k*n◆i]=A[r*n◆i];
A[r*n◆i]=max;
max=b[k]; /*change array:b[k]b[r] */
b[k]=b[r];
b[r]=max;
for (i=k◆1;in;i◆◆)
for (j=k◆1;jn;j◆◆)
A[i*n◆j]-=A[i*n◆k]*A[k*n◆j]/A[k*n◆k];
b[i]-=A[i*n◆k]*b[k]/A[k*n◆k];
所以这种程序是超级大型的,一般没人能独立写出来.
编程计算器和一些程序能实现,但是源代码都是不公布的.
以上就是土嘎嘎小编为大家整理的c语言编写程序求函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!