2016年06月02日学习日记c语言函数
函数目的:
1、代码复用
2、分解功能使代码清晰
3、易于维护(2次开发)
4、代码规范
子模块就做一件事情
函数形势 函数:函数头、函数体
return-type function-name (argument list)
{
function body
}
eg:int main(int argh,const char *argv[])
{}
函数使用:
1、函数声明
2、函数调用
3、函数实现
函数参数:形式参数、实际参数
形參:声明函数,定义的参数
实參:调用函数传递的参数
函数返回值:结果(函数加工。最终得到的一个值)
函数传值方式:
1、值传递
2、指针传递
3、引用传递(c++特性)
//1、键盘键入一个5*5(二维数组)整形数组,找出其中最小数(稍微考虑一下效率)
#include <stdio.h>
int main()
{
int s[5][5],min=0;
for (int i=0; i<5; i++)
{
for (int j=0; j<5; j++)
{
if (i==0&&j==0)
{
printf("请输入s[0][0]:\n");
scanf("%d",&s[0][0]);
min=s[0][0];
}
else
{
printf("请输入s[%d][%d]:\n",i,j);
scanf("%d",&s[j]);
min=min<s[j]?min:s[j];
}
}
}
printf("最小值为%d",min);
return 0;
//2、自定义函数,用户scanf一个整数,?求平方
#include <stdio.h>
int p()
{
int n;
printf("please input a interger\n");
scanf("%d",&n);
return n*n;
}
int main()
{
printf("%d\n",p());
return 0;
}
// 3、编写2个函数max,min 分别计算三个数中的 ?最大数,最小数,
include “stdio.h”
#define max(a,b,c) ((a)>(b))?((a)>(c)?(a)c))(b)>(c)?(b)c))
#define min(a,b,c) ((a)<(b))?((a)<(c)?(a)c))(b)<(c)?(b)c))
double d(double a,double b,double c)
{
return (max(a,b,c));
}
double x(double a,double b,double c)
{
return min(a,b,c);
}
int main()
{
double a,b,c;
printf("请输入要求的三位数\n");
scanf("%lf%lf%lf",&a,&b,&c);
printf("最大值为");
printf("%f",d(a,b,c));
printf("最小值为");
printf("%f",x(a,b,c));
return 0;
}
// 4、定义一个函数,scanf一个整数,?求阶乘
#include <stdio.h>
long j(long n)
{
long s=1;
for(long i=1;i<=n;i++)
{
s=s*i;
}
return s;
}
int main()
{
long n;
printf("请输入n:\n");
scanf("%ld",&n);
printf("%ld阶乘为:%ld\n",n,j(n));
return 0;
}
// 5、scanf一个5到10位的正整数,?求它是几位数,逆序打印出各位数字
#include "stdio.h"
int main()
{
long n=0;
int m=0;
while (m<5||m>10)
{
m=0;
printf("请输入一个5到10位的正整数\n");
scanf("%ld",&n);
if(n==0) m=1;
else if (n<0)
{
n=-n;
}
for (int i=1;n/i*10.0>1;i*=10)
{
m++;
}
printf("它是%d位数\n",m);
}
printf("逆序输出:\n");
while(n)
{
int m;
m=n%10;
n/=10;
printf("%d",m);
}
return 0;
}
//打印出以下图形
正方形
****
****
****
****
三角形
*
**
***
****
平行四边形
****
****
****
****
菱形(显示有误,其实是一个13531的菱形)
*
***
** ***
***
*
#include "stdio.h"
void zfx()//正方形
{
for (int i=0; i<4; i++)
{
for (int j=0; j<4; j++)
{
printf("*");
if (j==3)
{
printf("\n");
}
}
}
}
void sjx()//三角形
{
for (int i=0; i<=3; i++)
{
for (int j=0; j<=i; j++)
{
printf("*");
if (j==i) printf("\n");
}
}
}
void sbx()//四边形
{
for (int i=0; i<=3; i++)
{
for (int j=0; j<=i; j++)
{
printf(" ");
if (j==i) printf("****\n");
}
}
}
void lx()//菱形
{
for (int i=1; i<=3; i++)
{
int m=3-i;
for (int k=1; k<=m; k++)
{
printf(" ");
}
for (int k=1; k<=2*i-1; k++)
{
printf("*");
}
printf("\n");
}
for (int i=1; i<=2; i++)
{
for (int k=1; k<=i; k++)
{
printf(" ");
}
for (int k=3; k>=2*i-1; k--)
{
printf("*");
}
printf("\n");
}
}
int main()
{
zfx();
sjx();
sbx();
lx();
return 0;
}