watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenVveW91MTMxNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenVveW91MTMxNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenVveW91MTMxNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenVveW91MTMxNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

#import <Foundation/Foundation.h>
#import "MyFunction.h"
#import "Operator.h"
#define PI 3.1415926
int mediumValue(int o , int p ,int q)
{ #pragma mark-------------总结几种求中间数的方法
//三个数求和,减去最大的,最小的
//数组排序
//第一种方法
//先求最大,再求最小,最后就是中间的
int max = 0,min =0,med= 0;
if (o>p&&o>q) {
max = o;
}else if (p>o&&p>q){
max = p;
}else{
max =q;
} if (o<p&&o<q) {
min = o;
}else if (p<o&&p<q){
min = p;
}else{
min =q;
} if ((o>p&&o<q)||(o<p&&o>q)) {
med = o;
}else if ((p>o&&p<q)||(p<o&&p>q)){
med = p;
}else{
med =q;
}
return med;
} //没有返回值,没有參数
void printfLanou(void);
void printfLanou(void)
{
printf("蓝鸥 ");
} //没有返回值,有參数
void printfNum(int number);
void printfNum(int number)
{
printf(" %d ",number);
} //有返回值,无參数
//float PI()
//{
// return 3.1415;
//} //既有返回值,又有參数 //int square(int x)
//{
// return x*x;
//} //求和
int sumsValue( int m,int n);
int sumsValue( int m,int n)
{
int sums = 0 ;
for (int i = m; i<=n; i++) {
sums = sums +i;
}
return sums; } int main(int argc, const char * argv[])
{
// int b[10]={0};
// for (int i = 0; i<10; i++) {
// b[i]=arc4random()%(20-10+1)+10;
// }
// for (int j = 0; j<10; j++) {
// printf("%d ",b[j]);
// }
//
// int c[5]={0};
// for (int i =0; i<5; i++) {
// c[i]=arc4random()%(60-20+1)+20;
// }
// printf("\n");
// for (int i = 0; i<5; i++) {
// printf("%d ",c[i]);
// }
//
// printfLanou();
// printfNum(5);
// printf("%f ",PI()+3);
// printf(" %d",square(5));
// printf(" %d",sumsValue(1,9));
//
// int a[5]={3,5,1,2,9};
// bubbleSort(a, 5); #pragma mark --------总结数组函数
//数组作为參数,把数组名传入,即数组的首地址
//数组一旦创建,就有固定地址,不能操作整个数组,仅仅能操作数组中某个元素
//函数能够嵌套调用,可是不能够嵌套定义 //1.编写函数int sumValeu(int n);计算1到n的和
// int a = 0;
// a = sumValue(101);
// printf("%d",a); //2.编写函数dayOfYear(Year,month,day)
// printf("\n");
// dayOfYear(2014, 1, 13); //3.编写函数,返回三个整数的中间数
// int mediu = mediumValue(2, 3,1);
// printf("mediu = %d",mediu);
//4,编写函数,返回正整数n中数字的个数
//方法-
// numbers(345);
//方法二(while循环)
// 5.创建⼀对⽂件:operator.h operator.m
// 实现函数。对两个整型数的加、减、乘、除。 //加
// add(1, 2);
//减
//乘
//除 //6.计算 s = (2*2)! + (3*3)! +(4*4)!
//1、整型数的平⽅
//2、⼀个整型数的阶乘
//3、三个整形的平⽅的阶乘的和
//平方
// square(2);
// printf("平方%d", square(2));
//阶乘
// factorial(square(2));
// printf("阶乘%d",factorial(square(2))); //求和
// int s = 0;
//第一种
// s = sum(factorial(square(2)), factorial(square(3)), factorial(square(4)));
//另外一种
// for (int i = 2; i<=4; i++) {
// s=s+factorial(square(i));
// }
// s = factorial(5);
// printf("\n");
// printf("s=%d",s); #pragma mark--------总结static
//同样函数类型,同样的返回值,同样个数的參数 //(后执行期,先编译期)
//凡是函数内部定义的变量都是局部变量
//没有static修饰,执行期放在栈区,用完销毁
//有static修饰,编译期已经放在静态区,非常占内存,仅仅能初始化一次 //用static修饰的函数,仅仅能在本文件里使用
//NTFS插件 // for (int i = 0; i<10; i++) {
// test();
// } return 0;
}

"Operator.h"
//加
void add(int a,int b);
//减
void reduce(int a,int b);
//乘
void multiply(int a,int b);
//除
void divide(int a,int b); void test();
<pre name="code" class="objc">"Operator.m"

//加
void add(int a,int b)
{
printf("%d",a+b);
}
//减
void reduce(int a,int b)
{
printf("%d",a-b);
}
//乘
void multiply(int a,int b)
{
printf("%d",a*b);
}
//除
void divide(int a,int b)
{
printf("%d",a/b);
} #pragma mark-------statickeyword
void test()
{
// static int i = 10;
int i = 10;
printf("%d ",++i);
}
MyFunction.h

int  sumValue(int n);
void dayOfYear(int year,int month,int day);
int mediumValue(int o , int p ,int q); //冒泡排序,arr是要排序的数组,count是数组的个数
void bubbleSort(int arr[],int count);
//帮我写一个随机数的函数 //正整数n中数字的个数
void numbers(int n); //平方
int square(int x);
//阶乘
int factorial(int n);
//求和
int sum(int a, int b, int c);

MyFunction.m

int  sumValue(int n)
{
int sum = 0;
for (int i = 1; i<n; i++) {
sum = sum + i;//不要把n写进去
}
return sum;
};
void dayOfYear(int year,int month,int day)
{
//1,3,5,7,8,10,12 31天
//4,6,9,11 30
//2 28
int days = 0;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
for (int i = 1; i<month; i++) {
days = days + a[i];
}
if (year % 400 ==0 || (year %4 == 0 && year /100 !=0)) {
if (month >2) {
days = days + 1;
}
}
days = days + day;
printf("第%d天",days);
} //冒泡排序,arr是要排序的数组,count是数组的个数
void bubbleSort(int arr[],int count)
{
for (int i = 0; i<count-1; i++) {
for (int j = 0; j<count-1-i; j++) {
if (arr[j]>arr[j+1]) {
int temp =arr[j];
arr[j] = arr[j+1];
arr[j+1]=temp;
}
}
}
printf("\n");
for (int i = 0; i<count; i++) {
printf("%d ",arr[i]);
}
} //正整数n中数字的个数
void numbers(int n)
{
int number =n;
int num[5]={1,10,100,1000,10000};
printf("\n");
int temp = 0;
for (int i = 0; i<5; i++) {
if (number/num[i] != 0) {
temp = i;
}
}
printf("正整数n中数字的个数是%d",temp+1);
} //平方
int square(int x)
{
return x*x;
} //阶乘
int factorial(int n)
{
// int factor = 1;//错过一次,乘法for循环累乘从0開始
// for (int i = 1; i<=n; i++) {
// factor = factor * i;
// }
// return factor; #pragma mark-----------递归求阶乘
//递归
if (n == 1) {
return 1 ;
}
return n * factorial(n-1); }
//求和
int sum(int a, int b, int c)
{
return a+b+c;
}

C语言--函数的更多相关文章

  1. 从linux0.11中起动部分代码看汇编调用c语言函数

    上一篇分析了c语言的函数调用栈情况,知道了c语言的函数调用机制后,我们来看一下,linux0.11中起动部分的代码是如何从汇编跳入c语言函数的.在LINUX 0.11中的head.s文件中会看到如下一 ...

  2. C语言(函数)学习之strstr strcasestr

    C语言(函数)学习之[strstr]&[strcasestr]一.strstr函数使用[1]函数原型char*strstr(constchar*haystack,constchar*needl ...

  3. C语言函数sscanf()的用法

    从文件读取数据是一件很麻烦的事,所幸有sscanf()函数. C语言函数sscanf()的用法 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( st ...

  4. 不可或缺 Windows Native (6) - C 语言: 函数

    [源码下载] 不可或缺 Windows Native (6) - C 语言: 函数 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 函数 示例cFunction.h # ...

  5. C#委托与C语言函数指针及函数指针数组

    C#委托与C语言函数指针及函数指针数组 在使用C#时总会为委托而感到疑惑,但现在总新温习了一遍C语言后,才真正理解的委托. 其实委托就类似于C/C++里的函数指针,在函数传参时传递的是函数指针,在调用 ...

  6. swift1.2语言函数和闭包函数介绍

    swift1.2语言函数和闭包函数介绍 在编程中,随着处理问题的越来越复杂,代码量飞速增加.其中,大量的代码往往相互重复或者近似重复.如果不采有效方式加以解决,代码将很难维护. swift1.2语言函 ...

  7. Swift 1.1语言函数参数的特殊情况本地参数名外部参数名

    Swift 1.1语言函数参数的特殊情况本地参数名外部参数名 7.4  函数参数的特殊情况 声明定义有参函数时,为函数的每一个参数都定义了参数名称.根据参数名定义的形式不同,函数参数包括本地参数和外部 ...

  8. C语言函数指针基础

    本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础.如果你不讨厌事无巨细,请尽情阅读吧. 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具.本文将从C ...

  9. 动态修改 C 语言函数的实现

    Objective-C 作为基于 Runtime 的语言,它有非常强大的动态特性,可以在运行期间自省.进行方法调剂.为类增加属性.修改消息转发链路,在代码运行期间通过 Runtime 几乎可以修改 O ...

  10. keil or c51 汇编调用c语言函数 容易忽视的问题

    最近,在用keil 写一个小程序时,想实践一下从汇编调用 C语言函数,我们都知道C语言调用汇编函数讨论得较多,但反过来,从汇编中调用C语言的函数未见深入分析:在开始的时候,还是忽视了一个问题,就是对现 ...

随机推荐

  1. 有效解决js中添加border后动画bug问题

    做了个demo发现如果一个div不加border属性,用对象的offsetWidth属性来控制width没问题,但是如果一旦加了border属性,问题就来了. 其实offsetWidth属性获取的的是 ...

  2. ueditor富文本编辑在 asp.net MVC下使用步骤

    mvc项目中用到了这个富文本编辑就试着把遇到的问题个使用步骤在这里记录一下,希望大家少走弯路. 1.首先我们先下载net版本的uediot r.

  3. PHP页面静态化入门

    <?php /** *PHP页面静态化分为以下步骤: *1.打开输出控制缓存 *2.返回输出缓存区的内容 *3.将一个字符串写入文件 *4.冲刷出缓存区的内容 */ //1.打开输出控制缓存 o ...

  4. Day18 Django之路由系统、模板语言、Ajax、Model

    一.路由系统 1.创建Django项目 django-admin startproject day18 cd day18 python3 manage.py startapp app01 2.app0 ...

  5. python中的buildin函数详解(第一篇)

    这会是很长的一个帖子,因为我打算从python最基础的东西开始,尝试去完全的掌握它,buildin中有一些常用的函数比如 abs, open, setattr, getattr, 大家都很了解他们的用 ...

  6. Java 高效检查一个数组中是否包含某个值

    如何检查一个数组(未排序)中是否包含某个特定的值?在Java中,这是一个非常有用并又很常用的操作.同时,在StackOverflow中,有时一个得票非常高的问题.在得票比较高的几个回答中,时间复杂度差 ...

  7. JSP面试题及答案

    更新时间:2015-04-07         来源:网络         投诉删除 [看准网(Kanzhun.com)]JSP面试题频道小编搜集的范文“JSP面试题及答案”,供大家阅读参考,查看更多 ...

  8. Flex时间操作

    小弟是Flex新手,最近一段时间领导要求使用Flex开发B/S的一些项目,需要用到时间上的一些操作.上网查询一番好多人都说不好操作,有的甚至非常麻烦.基于此,小弟整理了一些关于Flex时间操作的经验, ...

  9. bzoj 1004 1004: [HNOI2008]Cards burnside定理

    1004: [HNOI2008]Cards Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1668  Solved: 978[Submit][Stat ...

  10. uva 11136 - Hoax or what

    用两个优先队列来实现,因为队列只能从一头出去: 所以维护一个数组,来标记这个队列的已经出列而另外一个队列没有出列的元素: 到时候再把他们删了就行: #include<cstdio> #in ...