C语言06 -- 函数多文件管理

// main.m
// C6– 函数多文件管理
//
// Created by dllo on 15/7/7.
// Copyright (c) 2015年 Gaozi. All rights reserved.
//

import

import “MyFunction.h”

//. 函数的定义 分四种形式.
//位置:在主函数的上面,#import的下面.

// 1 . 无返回值,无参数.
// 第一部分:void – 没有返回值.
// 买菜功能
// 第二部分:函数名,起名原则与变量名一样.
// 第三部分:参数

// 全局变量.

int g = 10;
void textnum(){
printf(“%d\n”,g);
}

// 数组作为参数进行传递

// 第一部分: 传第一个数组名,可以不写长度.
//第二部分:需要执行一个数组的有效长度.
void printArr(int arr[],int count){
for (int i = 0; i < count; i++) {
printf(“%d “,arr[i]);
}
printf(“\n”);
}

// 通过函数对一维数组冒泡
void bubblesort(int arr[], int count){

for (int i = 0; i < count - 1; i++) {
    for (int j = 0;  j < count - i - 1; j++) {
        if (arr[j]>arr[j+1]) {
            int temp = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = temp;
        }
    }
}

}

int sumnum(int a, int b){
return a+b ;
}

int main(int argc, const char * argv[]) {

g++;
printf("%d\n",g);
textnum();  /  g不安全谁都可以改变.
// 传递整个数组
int arr[5] = {1,2,3,4,5};
printf("%p\n",arr);
printf("%p\n",&arr[0]);
printf("%p\n",&arr[1]);
printf("%p\n",&arr[2]);
// 打印出0x7fff5fbff780--- 占区?(堆区,全静态区,常量区,代码区)
// & 取地址.
int arr[5] = {12, 22, 23, 24, 25};
printf("%ld\n",sizeof(arr));

printArr(arr, sizeof(arr)/sizeof(int));//防止long类型4或8节.
printArr(arr, 5);

// 冒泡

int arr[6] = {21,12,54,78,124,96};
bubblesort(arr, 6);
for (int i = 0; i < 6; i++) {
printf(“%d “,arr[i]);
}printf(“\n”);

// 多文件的时候,函数调用还是用函数名来进行.

printf(“%d\n”,sumvaule(100));
dayofyear(2015, 5, 12);
printf(“中间数为%d\n”,midnum(45, 56, 12)) ;
printf(“有 %d 位.\n”,numindex(2345));
numtwo(5,2);
int arr[9] = {11,6,4,8,9,17,79,51,45};
// 调用两个函数,排序和打印.
bubbleSort(arr,9);
printArr(arr,9);
// 就是节省代码,提高代码的重用.

//回文串.

if (palindrome(“lalakalal”)) {
printf(“是回文\n”);

}else{
printf(“不是回文\n”);
}
printf(“%d\n”,maxnum(20, 30));

text();
printf(“%d\n”,factorialNum(5));

int arr[5] = {2,6,4,9,7};
// 1.如果数组中有9这个数字,把这个数字变成100,并且把这个下表返回,没有的话返回5.
;
printf(“%d\n”,checkArr(arr, 5, 9));
return 0;
}

//
// MyFunction.h
// C6– 函数多文件管理
//
// Created by dllo on 15/7/7.
// Copyright (c) 2015年 Gaozi. All rights reserved.
//

import

import “MyFunction.h”

// 在.m 文件中写相应的函数的定义.
int sumvaule(int n){
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
// dayof year
void dayofyear(int year, int month, int day){
switch (month - 1) {
case 11:
day += 30;
case 10:
day += 31;
case 9:
day += 30;
case 8:
day += 31;
case 7:
day += 31;
case 6:
day += 30;
case 5:
day += 31;
case 4:
day += 30;
case 3:
day += 31;
case 2:
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
day += 29;
}else{
day += 28;
}
case 1:
day += 31;
}
printf(“是第%d天\n”,day);
}

int midnum(int a, int b, int c){

int max = a > b ? a : b;
max = max > c ? max : c;
int min = a < b ? a : b;
min = min < c ? min : c;
int mid = a + b + c - max - min;
return mid;

}
int numindex(int n){
int index = 0;
for (int i = 1; i > 0; i=i*10) {
if (n % i != n) {
index++;
}else{
break;
}
}
return index;

}
void numtwo(int num1, int num2){
int add = 0, sub = 0, mul = 0;
float div = 0;
add = num1 + num2;
sub = num1 - num2;
mul = num1 * num2;
div = num1 / num2 + (num1 % num2)/num2;
printf(“两个数和为%d\n”,add);
printf(“两个数差为%d\n”,sub);
printf(“两个数积为%d\n”,mul);
printf(“两个数商为%g\n”,div);

}
void bubbleSort(int arr[], int count){
for (int i = 0; i < count - 1; i++) {
for (int j= 0 ; j < count - i - 1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}

void printArr(int arr[], int count){
for (int i = 0; i < count; i++) {
printf(“%d “,arr[i]);
}
printf(“\n”);
}
BOOL palindrome(char str[]){
for (int i = 0; i < strlen(str)/2; i++) {
if (str[i] != str[strlen(str) - i - 1]) {
return NO;
}
}
return YES;
}
// 两个数中较大值,并返回.
int maxnum(int a, int b){
return a > b ? a : b;
}
int maxbig(int a, int b, int c){
//函数的嵌套调用.
int max =maxnum(a, b);
max = maxnum(max,c);
return max;
}
int maxfour(int a, int b, int c, int d){
int max = maxbig(a, b, c);
max = maxnum(max, d);
return max;
}
int maxfive(int a, int b, int c, int d, int e){
int max = maxfour(a, b, c, d);
max = maxnum(max, e);
return max;
}
// 如果写递归的话,一定要注意,在自己调用自己的时候一定要给程序留一个结束的出口.
void text(){
text();
}

int factorialNum(int n){
// 首先给函数找一个结束的出口.
if(n == 1){
return 1;
}
return factorialNum(n - 1) * n;
}

int checkArr(int arr[],int count, int num){
for (int i = 0; i < count; i++) {
if (arr[i] == num) {
arr[i] = 100;
return i;
}
}
return 5;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值