ios--c DAY_6
来源:互联网 发布:小米网络助手在哪里 编辑:程序博客网 时间:2024/06/10 20:50
//花括号的作用:打包,使其中的语句作为一个整体,并与外界隔离。
1、函数定义
2、函数调用
3、函数声明
4、数组作为参数
5、函数嵌套
6、函数递归
源代码:比较乱,可能值适合自己看了
//
// main.m
// LessonSix
//
// Created by lanou3g on 15/8/4.
// Copyright (c) 2015年 lanou.3g.com. All rights reserved.
//
#import <Foundation/Foundation.h>
#pragma 函数声明 二
//在文件的.h中声明 在.m中定义实现
#import "function.h" //引用.h文件---这样的话.m文件也在.h中---就可以使用其中声明以及定义好的函数了。
#import "Operation.h"
#import "Computer.h"
// 上午
enum FRUIT{
APPLE,ORIENGE,PEAR,BANANA
};
//< 库函数 >
//" 自定义函数 "
//函数声明
void BuySomething();
void BuySomething0(int price);
int BuySomething1();
int BuySomething2(int price);
//交换a,b
void swap(int a,int b){
printf("交换前:a=%d,b=%d\n",a,b);
int temp=0;
temp=a;
a=b;
b=temp;
printf("交换后:a=%d,b=%d\n",a,b);
}
//1-n 的和
int sumNumber(int n){
int sum=0;
for (int i=1; i<=n ; i++) {
sum+=i;
}
return sum;
}
//找出一个数组中的中间数
int computeMedia(int a[],int n){
int temp=0;
for (int i=0; i<n; i++) {
for (int j=0; j<n-i-1; j++) {
if (a[j]>a[j+1]) {
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
return a[1];
}
//判断位数
int judgeNumberWeiShu(int number){
int n=1;
while (number/10!=0) {
n++;
number/=10;
} return n;
}
//下午
#pragma 函数声明 一
//所有函数声明都写在main.m文件中
//函数声明中,形参可以省略
//int minTwoNumber(int a,int b);
int minTwoNumber(int,int);
//函数定义中,形参不可以省略
int minTwoNumber(int a,int b){
return a<b?a:b;
}
#pragma 函数声明 三
//数组作为函数的参数
//数组名 是地址
//1、数组作为参数,至少要有两个参数: 数组 和 数组元素个数。
//2、声明时,int [],[]中绝对不可以添加元素的数量,定义也是不可以的。
//3、传入的是 数组的首地址
//4、实参和形参操作的是同一段地址空间。
void min();
//1、定义求两个数中最大值
int maxTwo(int num1,int num2);
int maxTwo(int num1,int num2){
return num1>num2?num1:num2;
}
int maxThree(int num1,int num2,int num3);
int maxThree(int num1,int num2,int num3){
int max11=maxTwo(num1,num2);
return max11>num3?max11:num3;
}
int maxFour(int num1,int num2,int num3,int num4);
int maxFour(int num1,int num2,int num3,int num4){
int max22=maxThree(num1,num2,num3 );
return max22>num4?max22:num4;
}
int main(int argc, const char * argv[]) {
int num1=3,num2=12,num3=98,num4=23;
int maxfour=maxFour(num1, num2,num3, num4);
printf("四个数中最大值:%d\n",maxfour);
//下午
//函数调用
int a=4,b=9;
int min=minTwoNumber(a, b);
printf("min=%d\n",min);
//调用一个未定义的函数是错误的。
// min();
//经过头文件的引用来调用函数
int max=returnMaxOfTwoNumber(6, 9);
printf("max=%d\n",max);
int numberOne1=0,numberTwo2=0;
char operator=0;
printf("请输入两个数:\n");
scanf("%d%d",&numberOne1,&numberTwo2);
getchar();//吞掉上次输入的回车符
printf("请输入运算符:\n");
scanf("%c",&operator);
getchar();//吞掉上次键入的回车符
int result=returnResultOfTwoNumber(numberOne1, numberTwo2,operator);
printf("%d%c%d=%d\n",numberOne1,operator,numberTwo2,result);
//求和
int numberOfN=0;
printf("请输入一个数:\n");
scanf("%d",&numberOfN);
getchar();
int sum=returnSumOf1_nNumber(numberOfN);
printf("1-%d的总和:%d\n",numberOfN,sum);
//打印数组中的元素
int array[10]={0};
for (int i=0; i<10; i++) {
array[i]=arc4random()%(20-0+1)+0;
printf("%d\t",array[i]);
}
printf("\n===========================\n");
printf("函数调用打印数组元素:\n");
//调用的时候,实参为数组的时候,只需要写数组名就可以了,数组名就是数组的首地址
//形参是函数声明和定义时的名称
//实参是函数调用 时的叫法
printAllElementsOfArray(array, 10);
//创建一个名为ArrayFunction的文件,写个方法,分别求数组的升序降序
printf("既能升序,又能降序:\n");
printShengXu(array,10);
printf("\n============================\n");
printf("降序单功能:\n");
printJiangXu(array,10);
#pragma 函数的嵌套调用
//函数的嵌套调用
//用挖掘机炒菜
// 电脑:Computer---调用挖掘机
// 挖掘机:Digger——--调用炒菜
// 炒菜:Cook
controlDigger();
//上午
//常量命名:全部是大写字母
//常规冒泡
printf("常规冒泡:\n");
int _bubbleSort[10]={0};
int _bubbleTemp=0;//the intermediate variable
for (int i=0; i<10; i++) {
_bubbleSort[i]=arc4random()%(100-20+1)+20;
printf("%d\t",_bubbleSort[i]);
}
printf("\n==================================\n");
for (int i=0; i<10; i++) {
for (int j=0; j<10-i-1; j++) {
if (_bubbleSort[j]>_bubbleSort[j+1]) {
_bubbleTemp=_bubbleSort[j];
_bubbleSort[j]=_bubbleSort[j+1];
_bubbleSort[j+1]=_bubbleTemp;
}
}
}
for (int i=0; i<10; i++) {
printf("%d\t",_bubbleSort[i]);
}
//优化冒泡
printf("\n===================================\n");
printf("优化冒泡:\n");
int _bubbleSort0[10]={0};
int _bubbleTemp0=0;
BOOL _bubbleFlag0=NO;//the sign of the change
for (int i=0; i<10; i++) {
_bubbleSort0[i]=arc4random()%(100-0+1)+0;
printf("%d\t",_bubbleSort0[i]);
}
printf("\n=================================\n");
for (int i=0; i<10; i++) {
_bubbleFlag0=NO;
for (int j=0; j<10-i-1; j++) {
if (_bubbleSort0[j]>_bubbleSort0[j+1]) {
_bubbleTemp0=_bubbleSort0[j];
_bubbleSort0[j]=_bubbleSort0[j+1];
_bubbleSort0[j+1]=_bubbleTemp0;
_bubbleFlag0=YES;
}
}
if (_bubbleFlag0==NO) {
printf("第%d趟就不用再交换了.\n",i);
break;
}
}
for (int i=0; i<10; i++) {
printf("%d\t",_bubbleSort0[i]);
}
printf("\n");
//函数--第六讲
//函数就是一种类型,什么叫类型
//类名--驼峰命名--第一个字母小写之后每个单词的首字母大写
//maxTwoNumber
//形式 : 返回值类型 函数名(有参或者无参){
// 语句
// return 返回值;
// }
//1、无返回值无参数
//2、无返回值有参数
//3、有返回值无参数
//4、有返回值有参数
//函数声明 :
//函数定义 :
BuySomething();
BuySomething0(8);
int _sumPrice=BuySomething1();
printf("_sumPrice=%d\n",_sumPrice);
int change=BuySomething2(12);
printf("the change=%d\n",change);
//函数调用过程,从主调函数进入-->被调函数--执行--得到结果-->返回到主调函数。
//被调函数生命周期:
//形参和实参
//形参:出现在函数定义中,提供给函数使用的值。
//实参: 出现在函数调用中,为函数的执行提供值。
//形参-->实参 通过 拷贝
//形参 在函数调用完毕后 立即被释放掉。 形参也就是副本
//定义一个函数,实现两个变量的交换。
int numberOne=0,numberTwo=23;
swap(numberOne,numberTwo);
//1+2+3+....+number
int number=0;
printf("请输入一个值,计算1-其的和:\n");
scanf("%d",&number);
getchar();
sum= sumNumber(number);
printf("1-%d的和:%d\n",number,sum);
//随机数[10-30],返回三个数中间的中间数
int numberArray[3]={0};
for (int i=0; i<3; i++) {
numberArray[i]=arc4random()%(30-10+1)+10;
printf("%d\t",numberArray[i]);
}
int mediaNumber=computeMedia(numberArray,3);
printf("中间数:%d\n",mediaNumber);
//输入一个数,返回是几位数
int numberWeiShu=0;
printf("请输入一个数值:\n");
scanf("%d",&numberWeiShu);
int n=judgeNumberWeiShu(numberWeiShu);
printf("这个数%d是%d位数.\n",numberWeiShu,n) ;
//第一种:所有函数生命都写在Main函数中
return 0;
}
//上午
void BuySomething(){
printf("you should get some fruits back.\n");
}
void BuySomething0(int price){
int APPLE=4;
switch (price) {
case 4:
printf("You buy some apples back.\n");
break;
case 5:
printf("You buy some orienge back.\n");
break;
case 6:
printf("You buy some pears back.\n");
break;
case 7:
printf("You buy some bananas back.\n");
break;
default:
break;
}
}
int BuySomething1(){
int totalPrice=12;
return totalPrice;
}
int BuySomething2(int price){
int change=5;
int _price=0;
_price=price-change;
switch (_price) {
case 4:
printf("you get an apple back.\n");
break;
case 5:
printf("you get an orange back.\n");
break;
case 6:
printf("you get a pear back.\n");
break;
case 7:
printf("you get a banana back.\n");
break;
default:
break;
}
return change;
}
- ios--c DAY_6
- Day_6.
- Day_6重载
- Day_6.(2)
- Day_6.(3)
- java中的数组day_6
- java学习—day_6
- 初学者的学习复习day_6
- Practice Every Day_6 (Lucene 小练习)
- day_6-acm 二分查找+尺取法
- iOS-学习 Objective-C
- iOS Obj-C
- objective-c、ios开发
- iOS C++/OC 混编
- ios-object c-01
- C-Dogs for ios
- [面试题] ios,c
- IOS Object-c relese
- C陷阱与缺陷 —— 读书笔记-2、语法“陷阱”
- Vim 自动显示行号 高亮 缩进
- Java Socket编程
- hdu 5334 多校(4)
- java-Dom创建和解析xml
- ios--c DAY_6
- 如何解决ios SIGPIPE 导致的崩溃
- 【公开课:Java开源框架服务及CEP深入剖析】直播QQ群:228977971
- XCode6.3编写swift+OC引入含C++的库时的问题
- mysql学习
- UI_Stepper
- 鼠标悬停,图片变色
- Spark中hash-based 和 sort-based的对比分析
- windows 装mac系统