C语言中一个函数(function)是一个可以从程序其它地方调用执行的语句块。
站在用户的角度思考问题,与客户深入沟通,找到托克逊网站设计与托克逊网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、网站建设、企业官网、英文网站、手机端网站、网站推广、域名申请、网络空间、企业邮箱。业务覆盖托克逊地区。
1、通过使用函数(functions)我们可以把我们的程序以更模块化的形式组织起来,从而利用C语言所支持的结构化程序设计。
2、从数学角度,函数即集合A和集合B之间的映射关系。实际上计算机中的函数概念也是源于此,因此,一般函数,都有形参和返回值。
3、从计算机组成原理的角度来看,函数即是一个小型的计算机系统,依据冯诺伊曼的“存储程序原理”,每一个计算机系统包含:输入系统、输出系统、运算器以及控制器,实际上对于C语言中的函数来说,它是“存储程序原理”的软实现,其中形参、实参这是输入系统,返回值是输出系统,函数体中的运算符,比如+、-、*、/四则运算即为运算器,而逻辑运算符以及if、while等控制语句便是一个控制器。
%-4d是用于C语言输出的格式字符串,可以用于printf类函数,包括printf, sprintf, fprintf,vfprintf,vprintf,vsprintf,snprintf,vsnprintf,vasprintf等等。
各种函数中的含义是相同的,都是按照10进制形式输出整数值,输出值范围如果不足4列宽度,那么按4列宽度输出,否则按实际宽度输出。 输出结果数值在左侧,右侧用空格补足。
%-4d的四个字符每个都有各自的功能,具体如下:
1 %:格式字符串的引导标识,每个格式字符串必须以%开头。
2 -: 输出的内容左侧为有效数据,右侧为补足字符。
3 4:输出占4列宽度,不足用空格补齐,超出按实际长度输出。
4 d: 按照10进制整型输出。
下面这个例子输出两行数据,每行五个数值:
#include stdio.h
int main()
{
printf("%-4d%-4d%-4d%-4d%-4d\n",1,12,123,123412,12345);
printf("%-4d%-4d%-4d%-4d%-4d\n",23,123,2341,1,123456);
return 0;
}
输出结果为
1 12 123 12341212345
23 123 23411 123456
从中可以看到其作用及缺陷。
对于低于4位的整数,可以很好的实现输出及对齐效果,比如例子中的第一列和第二列。
如果输出位数为4位,那么输出值和下一个输出间不会有分隔符,比如第二行的3 4两列,本来是2341和1,但输出的效果是一个数23411。
当数值超过4位时对齐效果会被打乱,同时与下一个输出见没有间隔。
比如第一行的第四列,输出数值为123412,与下一个12345没有分隔,同时第五列的12345本应与第二行的123456左对齐,但由于123412侵占了该位置,导致二者无法达成对齐效果。
所以%-4d这类格式输出,仅使用与数据规模在四位数以下的情况,超出则会出错。
如果在数据中存在负值,则负值仅可以为三位数或以下,因为输出的符号也同样会占一列宽度。
函数由返回值类型,函数名,参数类型,参数名等四部分组成
函数名是一个标识符,大小写有区别。
没有关心过函数名的最长字符的限制
包括返回值,函数名,形参列表和函数体四个部分。
例如 :
int findmin(int a[],int n){
//函数体
return min;
}
以上函数int 是返回值,findmin是函数名, int a[] int n是形参列表
程序比较简单;下面的图片是我运行的结果,你可以参考一下!
#include stdio.h
int a[100][100];
void fun(int n);//将对角线置1函数
int count(int n);//计算除对角线外的元素的和
int main()
{
int n, i, j, sum;
printf("请输入该矩阵的维数:");
scanf("%d", n);//数组的维数
printf("请输入矩阵中的值,按行输入:\n");
for(i=0; in; i++)
{
for(j=0; jn; j++)
{
scanf("%d", a[i][j]);
}
}
fun(n); //调用两个函数
sum=count(n); //输出改动后的矩阵
printf("改动后的矩阵为:\n");
for(i=0; in; i++)
{
for(j=0; jn; j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n除对角线外其余的元素的和为:%d\n", sum);
}
void fun(int n)//n为数组的维数,下同
{
int i;
for(i=0; in; i++)
a[i][i]=1;
}
int count(int n)
{
int i, j, sum=0;
for(i=0; in; i++)
{
for(j=0; jn; j++)
{
if(i!=j) sum += a[i][j];
}
}
return sum;
}