c语言自定义函数例子,C语言指针实现自定义函数求一维数组中的最大值和最小值
c语言自定义函数例子,C语言指针实现自定义函数求一维数组中的最大值和最小值详细介绍
本文目录一览: c语言编程 圆的面积与周长自定义函数
#include
#define PI 3.14
float cricles(float R)
{ float S;
S= R*R*PI;
return S;
}
float criclec(float R)
{
float C;
C=2*R*PI;
return C;
}
int main()
{
float r;
printf("请输入圆的半径:");
scanf("%f",&r);
printf("圆的面积为%f\t,周长为%f\t",cricles(r),criclec(r));
return 0;
}
扩展资料:
C程序是由一组变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。
C程序中函数的数目实际上是不限的,如果说有什么限制的话,那就是,一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一个以main为名的函数,这个函数称为主函数,整个程序从这个主函数开始执行。
C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。
形参(形式参数):
在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。
实参(实际参数):
函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。
参考资料来源:百度百科-C语言
void print(double r){ if (r <= 0) printf("Error!"); // r > 0 else printf("S = %lf, C = %lf\n", 3.14*r*r, 2*3.14*r);}
#include "stdio.h"
const double PI=3.1415926;
double area(double r)
{
return PI*r*r;
}
double circum(double r)
{
return 2*PI*r;
}
void main()
{
double r;
printf("请输入圆的半径:\n");
scanf("%lf",&r);
printf("圆的面积为:%lf\n",area(r));
printf("圆的周长为:%lf\n",circum(r));
}
#include
# define PI 3.141592
void area(float r)
{float area;
area=PI*r*r;
printf("arae=%f",area);
}
void z_c(float r)
{float z_c;
z_c=2*PI*r;
printf("zhouchang=%f",z_c);
}
void main()
{float r;
printf("Please Input r:");
scanf("%f",&r);
area(r);
printf("\n");
z_c(r);
printf("\n");
} 还可以这样
这样:
#define pi 3.1415926
#include
int main()
{
float r,area,perimeter;
printf("请你输入圆的半径r:\n");
scanf("%f",&r);
area=pi*r*r;
perimeter=pi*r*2;
printf("直径为:%0.02f\n圆的面积为:%0.03f\n周长为:%0.02f",2*r,area,perimeter);
return 0;
}
扩展资料:注意事项
1、常量是指在运行过程中,其值不改变的量。
2、#define我们称为宏定义,在编译前替换,也称为预编译。
3、宏定义,规范上用大写字母表示。
4、float为单精度浮点型,占用4字节,其表示范围为10^-37到10^38。
5、需要更长的数据表达范围和精度,还可使用双精度浮点型double,占用8字节,其表示范围为10^-307到10^308
c语言程序设计题:请用自定义函数的形式编程实现,求s=m!+n!+k! m n k从键盘输入(值均小于7)
1、打开Dev-c++软件,点击“新建源代码”。
2、具体程序如下。
3、编写完程序之后,点击运行即可得出结果。最后的结果是根据自己输入的n值和a值为基础来进行运行的,每次输入的值不同,结果也会不同。
4、for表示循环结构,i 表示循环条件,在编写程序时,注意给赋予增值变量的条件。
5、term=term*10+a 中的term表示a的位数,跟随每次循环结构的变换,term不断被赋予新值。
6、sum=sum+term 表示累加的值,每次循环之后的sum都会被赋予新值,所以,在编写程序时,要注意 i 的最大循环次数,否则,此程序会无限选循环下去,最终没有结果。
#include
int fun(int n);
main()
{
int m,n,k,s;
printf("please input the number of m,n ,k\n");
scanf("%d%d%d",&m,&n,&k);
s=fun(m)+fun(n)+fun(k);
printf("s=%d",s);
}
int fun(int n) /*确保n不能太大,否则,函数返回类型改为long 或者float*/
{ int j,t=1;
for(j=1;j<=n,j++)t*=j;
return t;
}
#include
int f(int x) { int r; r=1; for ( i=1;i<=x;i++ ) r*=i; return r; }void main() { int m,n,k,s; scanf("%d%d%d",&m,&n,&k); s=f(m)+f(n)+f(k); printf("%d\n",s);}
int liancheng(int num)
{ int total;
if(num==0||num==1)
return 1;
else
total=num*liancheng(num-1);
}
int main()
{
int m,n,k,s;
cout<<"please input the number of m,n ,k";
cin>>m>>n>>k;
s=liancheng(m)+liancheng(n)+liancheng(k);
cout<<"the total number is "<
<s<<endl;
return 0;
}
代码:
#include
请用自定义函数的形式编程实现
求 s = m! + n! + k!,m、n、k 从键盘输入(值均小 于 7)。
int fun(int m);
int main()
{
int m,n,k;
int s;
printf("请输入三个小于7的数:");
scanf("%d %d %d",&m,&n,&k);
s=fun(m)+fun(n)+fun(k);
printf("%d\n",s);
return 0;
}
int fun(int m)
{
int i;
int x=1;
for(i=1;i<=m;i++)
{
x=x*i;
}
return x;
}
扩展资料:printf函数使用注意事项
1、域宽
%d:按整型数据的实际长度输出。
如果想输出指定宽度可以指定域宽,%md-->m域宽,打印出来以后,在控制台上,显示m位;
如果我们要打印的数的位数如果超过我们设定m则原样输出;
如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:
如果m为正数,则左对齐(左侧补空白);
如果m为负数,则右对齐(右侧补空白)。
2、转义字符
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。
如:printf("%f%%",1.0/3);输出结果:0.333333%。
</s<<endl;
c语言中用户自定义函数的格式是什么?
来个样例程序(输入两个数,求最大公约数)
#include
#include
int a,b;
int gcd(int x,int y)
{
if (x%y==0)
return y;
else
return gcd(y,x%y);
}
int main()
{
scanf("%d%d",&a,&b);
printf("%d\n",gcd(a,b));
return 0;
}
返回值类型 函数名(参数表) { //函数体代码 return 返回值; }
返回值类型 函数名(参数表){函数体}
c语言中用户自定义函数的格式:
函数返回类型 函数名(参数列表)
{
代码段;
return 函数返回值;
}
例如:
int test(int value){ value += 10; return value;}上面示例定义了一个名为test的函数,其返回值为int型,参数为int型,返回值为参数与10之和。
注:函数类型为void时,不可有return语句。
C语言怎么在main函数里写自定义函数,格式是怎么样的?请举例!!
写个程序你看看就知道了,
题目:求两个整数中的大者.
程序如下:
#include"stdio.h"
int
main(void)
{
int
max(int
x,int
y);
//函数声明
int
a
b
c;
//定义变量
scanf(”%d,%d“,&a,&b);
//输入两个数
c=max(a,b);
//调用max函数。将得到的值赋给c
printf("%d\n",c);
//输出c的值
}
int
max(int
x,int
y)
//函数定义部分。定义max函数为整型。函数值为整型,形式参数x,y为整型,
{
int
z;
//max函数的声明部分
if(x>y)
z=x;
else
z=y;
return(z);
}
后面的那一句语句就是自定义的,是前面需要调用的函数。在c中,不管你把main函数放在前面还是后面都是从main函数开始执行的。
在C中函数是不可以嵌套定义的,也就是说
在main函数里写自定义函数
这种说法是错误的,你只能在Main外面定义,在Main中调用
比如:
int
max(int
a,int
b)
{if
(a>b)
return
a;else
return
b;}
main()
{
printf("%d\n",max(3,7));
}
怎么用C语言自定义函数
有些自定义函数可能会被频繁的调用,所以写在一个C文件里是不太方便的。应该把这些自定义的函数写在一个C文件里,同时在一个头文件.h文件里声明。主函数可以通过引用该头文件然后调用需要的自定义函数。
举例如下:
1. 在头文件(.h)里声明自定义函数,定义用户写的函数;
2. 在一个C语言文件里写下自定义函数的实现方式,可以写在主函数前,也可在主函数后(需在头文件前声明函数);
3. 在主函数中调用自定义函数,别忘了头文件的声明;
4. 最后编译所有的涉及到的C文件;
#include
void number(int);
int main()
{
for(int i = 0;i<10;i++)
{
number(i);
C语言中怎么自己定义并调用函数?
假设定义一个函数,要表示其返回类型,如void,参数类型int。如void abc(int a,int b).调用时只需调写abc(1,2)
#include
using namespace std;
//自定义函数
void function(){
cout<<"Hello World"<
<endl;
}
int main()
{
function();//调用
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include
//声明一个求和的函数
int sum(int a, int b);
int main(int argc, char* argv[])
{
int x = 5, y = 7;
int s = sum(x, y); //调用函数
printf("x + y = %d \n", s);
system("pause");
return 0;
}
//定义求和函数
int sum(int a, int b)
{
return a + b;
}
更多C语言教程
</endl;
C语言中能否在一个自定义函数中调用另一个自定义函数?
可以调用。
C语言最基本的模块为函数,任意函数都可以调用其它任意一个函数,包括函数本身。
1、自定义函数调用其它自定义函数的例子:
#include
void fun1(int a)//自定义函数fun1。
{
printf("%d\n",a);
}
void fun2(int m, int n)//自定义函数fun2。
{
fun1(m);
fun1(n);//调用两次另一个自定义函数。
}
int main()
{
fun2(2,3);//调用fun2.
}
在这个例子中,就是主函数调用自定义函数fun2,然后fun2调用另一个自定义函数fun1.
2、不仅可以调用其它自定义函数,还可以调用自己本身。
这种称为递归。
以下是通过递归,计算1+2+3+...+n值的代码:
#include
int fun(int n)
{
if(n == 1) return 1;
return n+fun(n-1);//递归调用,返回和值。
}
int main()
{
printf("%d\n", fun(100));//计算1到100的和值。
return 0;
}
C语言指针实现自定义函数求一维数组中的最大值和最小值
全局变量方式
#include "stdio.h"
#define N 5
int max;//定义在所有函数之外的变量叫全局变量
//全局变量如果在一个函数改变,那么它的值也改变
//影响到其它函数的值,从而达到传值的效果
void find(int *a)
{
int i;
max=a[0];
for(i=0;i
<n;i++)
{
if(max<*(a+i))
max=*(a+i);
}
}
void main()
{
int i;
int a[N];
for(i=0;i
<n;i++)
{
scanf("%d",&a[i]);
}
find(a);
printf("%d\n",max);
}
指针方式
#include "stdio.h"
#define N 5
int Max(int *a)
{
int max,i;
max=*a;
for(i=1;i
<n;i++)
{
if(max<*(a+i));
max=*(a+i);
}
return max;
}
void main()
{
int a[N],max,i;
for(i=0;i
<n;i++)
{
scanf("%d",&a[i]);
}
max=Max(a);
printf("%d\n",max);
}
数组下标越界了,具有10个元素的数组,其下标是从0到9的。
第一处:为数组赋值时
for(i=1;i<=10;i++)
scanf("%d",&a[i]);
应该为
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
第二处:找出最大值、最小值时
for(i=0;i<=10;i++)
{if(*pmax
<a[i])
*pmax=a[i];
else if(*pmin>a[i])
*pmin=a[i];
应该为
for(i=0;i<=9;i++)
{if(*pmax
<a[i])
*pmax=a[i];
else if(*pmin>a[i])
*pmin=a[i];
#include
void main()
{
void func(int a[],int *pmax,int *pmin);
int i,max,min,a[10];
printf("input string:\n");
for(i=1;i<=10;i++)
scanf("%d",&a[i]);
func(a, &max, &min);
printf("max=%d,min=%d\n",max,min);
}
void func(int a[],int *pmax,int *pmin)
{int i;
*pmax=a[1];
*pmin=a[1];//这里都要改成1 你数组从1开始初始化的
for(i=1;i<=10;i++)
{if(*pmax
<a[i])
*pmax=a[i];
else if(*pmin>a[i])
*pmin=a[i];
}
}
#include
void main()
{void func(int a[],int *pmax,int *pmin);
int i,max,min,a[10];
printf("input string:\n");
for(i=0;i<10;i++) //数组下标是0-9
scanf("%d",&a[i]);
func(a, &max, &min);
printf("max=%d,min=%d\n",max,min);
}
void func(int a[],int *pmax,int *pmin)
{int i;
*pmax=a[0];
*pmin=a[0];
for(i=0;i<10;i++) //数组下标是0-9
{if(*pmax
<a[i])
*pmax=a[i];
else if(*pmin>a[i])
*pmin=a[i];
}
}
#include
void main()
{void func(int a[],int *pmax,int *pmin);
int i,max,min,a[10];
printf("input string:\n");
for(i=0;i<10;i++) //这里,数组越界了
scanf("%d",&a[i]);
func(a, &max, &min);
printf("max=%d,min=%d\n",max,min);
}
void func(int a[],int *pmax,int *pmin)
{int i;
*pmax=a[0];
*pmin=a[0];
for(i=0;i<=10;i++)
{if(*pmax
<a[i])
*pmax=a[i];
else if(*pmin>a[i])
*pmin=a[i];
}
}
import java.util.Scanner;
public class MaxMin{
public static void main(String[]args){
Scanner scan=new Scanner(System.in);
System.out.println("输入数组的长度:");
int count=scan.nextInt();
System.out.println("输出数组的"+count+"个数:");
int[]arr=new int[count];
for(int i=0;i
<arr.length;i++){
arr
=scan.nextInt();
}
System.out.println("输出数组:");
for(int i=0;i
<arr.length;i++){
System.out.print(arr
+"\t");
}
int max=Integer.MIN_VALUE;
int min=Integer.MAX_VALUE;
for(int i=0;i
<arr.length;i++){
if(arr
>max){//求出最大值
max=arr;
}
if(arr
<min){ 求出最小值
min=arr
;
}
}
System.out.println("\n最大值:"+max);
System.out.println("最小值:"+min);
}
}
扩展资料:system函数用法:int system(char*command);
system函数已经被收录在标准c库中,可以直接调用
程序例:
#include
#include
int main(void)
{
printf("About to spawn and run a DOS command\n");
system("dir");
return 0;
}
又如:system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。
例如,用system("color 0A");其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:
0=黑色1=蓝色2=绿色3=湖蓝色4=红色5=紫色6=黄色7=白色8=灰色9=淡蓝色A=淡绿色B=淡浅绿色C=淡红色D=淡紫色E=淡黄色F=亮白色
(注意:Microsoft Visual C++6.0支持system)
</arr.length;i++){
</arr.length;i++){
</arr.length;i++){
</a[i])
</a[i])
</a[i])
</a[i])
</a[i])
</n;i++)
</n;i++)
</n;i++)
</n;i++)
用C语言自定义一个函数,实现对三个整数求平均值,用return返回其平均值。输入输出在main中实现。
#include
int Ave(int a,int b,int c);
int main(void )
{
int a,b,c,average;
printf("input three integer:\n");
scanf("%d,%d,%d",&a,&b,&c);
average=Ave(a,b,c);
printf("average=%d\n",average);
return 0;
}
int Ave(int a,int b,int c)
{
int temp=(a+b+c)/3;
return temp;
}
在VC下运行过
#include"stdio.h"
float average(int x,int y,int z)
{
return (x+y+z)/3.0;
}
void main()
{
int a,b,c;
printf("Input 3 intager:\n");
scanf("%d%d%d",&a,&b,&c);
printf("Average is:%f\n",average(a,b,c));
getch();/*Win-TC环境下运行啊*/
}