本文最后更新于2022年02月11日,已超过16天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
函数名
(实参表列)
max();
max(a,b);
printf_star();
c=max(a,b);
m=max(a,max(b,c));
max(b,c)
是一次函数调用,它的值作为max另一次调用的实参。return
表达式;
或者为:return
(表达式);
return(z);
或者:return Z;
函数调用的过程图
void printstar(){ ... }
函数类型
函数名(参数类型1 参数名1,数类型2 参数名2...);
函数类型
函数名(参数类型1,参数类型2......);
float add(float x, float y);
float add(float, float);
#include <stdio.h>
// 主调用函数之前定义函数
float add(float x, float y) {
float z;
z = x + y;
return z;
}
main() {
float a, b, c;
printf("请输入两个实数:\n");
scanf_s("%f %f", &a, &b);
c = add(a, b);
printf("结果:%f\n", c);
}
#include <stdio.h>
float add(float x, float y); //所有函数之前声明
main() {
float a, b, c;
printf("请输入两个实数:\n");
scanf_s("%f %f", &a, &b);
c = add(a, b);
printf("结果:%f\n", c);
}
float add(float x, float y) {
float z;
z = x + y;
return z;
}
将在max函数中定义的变量 z 改为float型。函数返回值的类型与指定的函数类型不同,分析其处理方法。
#include <stdio.h>
main() {
int max(float x, float y);
float a,b;
int c;
printf("请输入两个实数:\n");
scanf_s("%f %f", &a, &b);
c = max(a, b);
printf("结果:%d\n", c);
}
int max(float x, float y) {
float z;
if (x > y) { z = x; }
else { z = y; }
return z;
}
因为函数类型为 int ,float转int精度问题导致数据丢失,结果出现了偏差
输入两个实数,用一个函数求出它们之和。
#include <stdio.h>
main() {
float add(float x, float y);
float a, b,c;
printf("请输入两个实数:\n");
scanf_s("%f %f", &a, &b);
c = add(a, b);
printf("结果:%f\n",c );
}
float add(float x, float y) {
float z;
z = x + y;
return z;
}
编写判断一个数为素数的函数,输出100到200之间的素数。
#include <stdio.h>
#include <math.h>
main() {
int leaps(int x);
int m, n = 0;
for (m = 101; m <200; m=m+2) //偶数不可能是素数
if (leaps(m) == 1) {
n++;
printf("%d, ", m);
if (n % 5 == 0) {
printf("\n");
}
}
}
int leaps(int x) {
int i, j, leap;
j = sqrt(x); //减少计算次数
for (i = 2; i <= j; i++)
if (x % i == 0) {
leap = 0;
break;
}
else {
leap = 1;
}
return leap;
}