练习:
新建一个Suibian类,以下函数的部分都是写到这个类中的:
1.用函数实现 : 随机产生count个[n , m]的正整数,输出这些数以及他们中的最大数
int max1(int n, int m, int count){
int arr[count];
int max = n - 1;
for (int i = 0; i < count; i++) {
arr[i] = arc4random() % (m - n + 1) + n;
printf("这些数为:%d\n",arr[i]);
if (max < arr[i]) {
max = arr[i];
}
printf("最大数为:%d\n",max);
}
//printf("最大数为:%d\n",max);
return max;
}
- 用函数实现 : 编程将所有“水仙花数”打印出来,并打印其总个数。 (“水仙花数”是一个各个位的立方之和等于该整数的三位数)
void flower() {
int count = 0;
for (int i = 100; i <= 999; i++) {
int x = i / 100;//百位
int y = i / 10 % 10;//十位
int z = i % 10;//各位
if (x * x * x + y * y * y + z * z * z == i) {
count++;
printf("%d\n",i);
}
}
printf("水仙花数:%d\n",count);
}
- 用函数实现 : 已知abc+cba = 1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合
void set(){
for (int a = 1; a < 10; a++) {
for (int b = 0; b < 10; b++) {
for (int c = 1; c < 10; c++) {
if ((a * 100 + b * 10 + c * 1) + (c * 100 + b * 10 + a * 1 == 1333)) {
printf("%d,%d,%d\n",a,b,c);
}
}
}
}
}
4.用函数实现 : 输入一个数,如果大于0,输出“正数”;如果小于0,输出“负数”;如果等于0,输出“0”
void shu(){
int a = 0;
printf("请输入一个数:");
scanf("%d",&a);
if (a > 0) {
printf("正数\n");
} else if (a < 0) {
printf("负数\n");
} else
printf("0\n");
}
5.参考strlen()函数编写一个myStrlen()函数,用于获取字符串的长度
int myStrlen(char array[]){
int count = 0;
while (array[count] != '\0') {
count++;
}
return count;
}
- 用函数实现 : 输入一个整数,判断奇偶,并返回判断结果(BOOL),奇数YES,偶数NO
BOOL panDuan(){
int a = 0;
if (a % 2 != 0) {
return YES;
}
return NO;
}
在主函数中进行实现:
先导入头文件:#import "Suibian.h"
然后进行赋初值、函数调用
hello();
repeatPrint(12);
int x = 4;
repeatPrint(x);
int y = peopleCount();
printf("%d\n",peopleCount());
printf("%d\n",y);
int c = max(1,4);
printf("%d\n",c);
int q = 0;
printf("请输入求和的数:");
scanf("%d",&q);
int c = sum(q);
printf("和为:%d\n",c);
printf("%d\n",mul(2, 3));
printf("%d\n",chu(5, 1));
flower();
int count = myStrlen("sgdrgre");
printf("%d\n",count);
BOOL v = panDuan(10);
printf("%d",v);
注意每个写在main()函数中的语句都要写在return 0;之前,之前写的几篇中类似,另外定义的函数要写在main()函数{}之外。
下面的练习是写在main.h中的函数,前边的几个是新建类进行函数的添加。
1.几种函数的类型
void hello() {
printf("hello hi!");
}
void repeatPrint(int count){
for (int i = 0; i < count; i++) {
printf("hello\n");
}
}
int peopleCount(){
return 4;
}
int max(int a, int b){
if (a > b) {
return a;
}
return b;
}
2.编写函数,计算1-n的和,并将计算结果通过值返回。n的值由键盘输入
int sum(int n){
int a = 0;
for (int i = 1; i <= n; i++) {
a += i;
}
return a;
}
3.三个数中的大小比较
int middleOfThree(int a, int b, int c){
int max1 = max(a, b);
int max2 = max(a, c);
int max3 = max(b, c);
int max4 = max(max1, max2);
int result = max4 < max3 ? max4 : max3;
return result;
}
- 中间用到了几个函数间的调用
知识点:
1.函数:
1️⃣是具有特定功能的代码段(一连串语句组合总在一起,实现了某一功能)。
可以省略重复代码的编写。
2️⃣从函数定义分为:
库函数(系统提供好的函数,例如printf)、自定义函数(开发者自己写的函数)
3️⃣函数定义四要素:
返回值类型 :函数的结果值类型,函数不能返回数组。指定返回类型是void类型说明函数没有返回值。
函数名 :函数名命名规范和变量名命名规范一样。
参数列表 : 每个形式参数的前面说明其类型,即使几个参数具有相同的数据类型,也必须对每个形式参数分别进行类型说明。形式参数用逗号进行分隔,就算没有参数函数后面的()也不能省略,可以写成(void)。
函数体 :函数功能的实现。
2.函数的定义类型:
返回值类型 函数名(形式参数列表) {
语句
return 返回值;
}
无参数无返回值函数举例
void hello(void) {
printf("Hello,Lanou"):
}
无参数有返回值函数举例
int peopleCount(void) {
return 33;
}
有参数无返回值函数举例
void printNumber(int x) {
printf("number is %d", x);
}
有参数有返回值函数举例
int max(int a, int b) {
return a > b ? a : b;
}
3.函数嵌套调用
C语言不允许函数嵌套定义,但是允许函数嵌套调用。
函数嵌套定义 : 在一个函数定义内再去定义一个函数;
函数嵌套调用 : 在一个函数内去调用另一个函数。
函数嵌套调用举例
void hello(void) {
printf("Hello,Lanou");
}