c7---函数

//
//  main.c
//  函数练习
//
//  Created by xiaomage on 15/6/7.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>
/*
 【理解】写一个函数打印一朵玫瑰花
 【理解】写一个函数打印N朵玫瑰花
 【理解】写一个函数从键盘输入三个整型数字,找出其最大值
 【理解】写一个函数求三个数的平均值
 */
void printRose()
{
    printf(" {@}\n");
    printf("  |\n");
    printf(" \\|/\n");// 在C语言中\有特殊的函数, 它是一个转义字符
    printf("  |\n");
}

void printRoses(int value)
{
    for (int i = 0; i < value; i++) {
        /*
        printf(" {@}\n");
        printf("  |\n");
        printf(" \\|/\n");// 在C语言中\有特殊的函数, 它是一个转义字符
        printf("  |\n");
         */
        printRose();
    }
}

int getMax(int v1, int v2, int v3)
{
    int temp = v1 > v2 ? v1 : v2;
    int max = temp > v3 ? temp : v3;
    return max;
}

int average(int v1, int v2, int v3)
{
    int average = (v1 + v2 + v3) / 3;
    return average;
}
int main(int argc, const char * argv[]) {
    /*
//    printRose();
    int number = 5;
    printRoses(number);
     */
    /*
    printf("请输入三个整数, 用逗号隔开, 以回车结束\n");
    int num1, num2, num3;
    scanf("%i,%i,%i", &num1, &num2, &num3);
    int result = getMax(num1, num2, num3);
    printf("result = %i\n", result);
     */

    printf("请输入三个整数, 用逗号隔开, 以回车结束\n");
    int num1, num2, num3;
    scanf("%i,%i,%i", &num1, &num2, &num3);
    int result = average(num1, num2, num3);
    printf("result = %i\n", result);
    return 0;
}
//
//  main.c
//  函数的调用过程
//
//  Created by xiaomage on 15/6/7.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>
/*
 4个确定:
 1.确定函数名称
 2.确定形参列表
 3.确定返回值
 4.确定返回值类型
 */
// 注意: 形参列表中的变量只有当函数被调用时才会分配存储空间
// 形参列表中的每一个变量我们称之为, 形式参数, 简称形参
int average(int v1, int v2)  //调用函数会分配一个内存空间,函数执行结束形参销毁,函数内存空间销毁。
{
    int average = (v1 + v2) / 2;
    return average;
}
int main(int argc, const char * argv[]) {
    // 需求: 求两个数的平均值
    int a = 10;
    int b = 20;
    // 调用函数时传入的参数, 我们称之为实际参数, 简称实参
    int result = average(a, b);  //调用函数会分配一个内存空间
    printf("result = %i\n", result);
    return 0;
}
//
//  main.c
//  main函数分析
//
//  Created by xiaomage on 15/6/7.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>

// main是函数的名称, 是系统规定的名称, 系统启动程序就会调用名称叫做main的函数
// main函数只能由系统调用 ,不能手动调用

// 其实系统在启动程序的时候, 会给我们的程序传递一些参数
//  argc : 就是系统传递进来的参数个数, 默认是1
//  argv : 就是系统传递进来的参数实际的值, 默认是程序的名称,可以通过xcode编辑器来更改传进来的值,让程序启动就有一个默认的值,
int main(int argc, const char * argv[]) {

    printf("argc = %i\n", argc);
    printf("argv = %s\n", argv[0]);//代码的全路径
    printf("argv = %s\n", argv[1]);

    // return 结束函数
    // 0 : 返回给操作系统, 如果返回0, 代表程序整除结束, 如果返回其它值代表程序非正常结束
    return 0;
}
时间: 2024-10-11 05:15:11

c7---函数的相关文章

拉口价

http://www.bookba.net/search-novel-www.sporttery.cn%A1%D4%DA%AB%BA%D3%D4%F5%C3%B4%B9%BA%C2%F2%C7%E8%BB%AF%BC%D8Q%A3%BA%A3%B1%A3%B1%A3%B2%A3%B7%A3%B4%A3%B0%A3%B1%A3%B1%A3%B7%A3%B5.html http://www.bookba.net/search-novel-www.sporttery.cn%A8%93%C3%DC%C9

【函数】Oracle函数系列(1)--字符函数

[函数]Oracle函数系列(1)--字符函数 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 常见字符函数(lower.upper.initcap.concat.substr.length.intr.lpad.rpad.trim.chr.ascii.replace.translate)的使用 ② 判断字符串中是否含有汉字 ③ substr和instr的联合使用 ④

【链接】函数栈帧

本节通过反汇编可执行文件得到的文件,研究函数栈帧的相关内容: 栈帧整体示意图如下 示例代码 #include <stdio.h> #include <iostream> using namespace std; int z = 10; int add(int x, int y) { return x+y+z; } int inc20(int x) { int y = 10; return add(x, y); } int main(void) { int a = 30; a = i

关于在用curl函数post网页数据时,遇上表单提交 type为submit 类型而且没有name和id时可能遇到的问题及其解决方法

curl函数库实现爬网页内容的链接在 http://www.cnblogs.com/linguanh/p/4292316.html 下面这个是没有name和id 标识的 <input type="submit" value="OnClick"/> 这种类型,在填写完信息后,我们一般需要点一个按钮去触发提交事件. 我之前介绍的用curl去获取网页cookie 的文章中 出现过的一个 变量 data,即要传送过去的 数据, 这个数据一般是网站的登陆账号和密码

Linux中backtrace()系列函数的应用实例

一.引言 backtrace()系列函数可用来输出代码出错时的函数调用关系. A backtrace is the series of currently active function calls for the program. #include <execinfo.h> int backtrace(void **buffer, int size); char **backtrace_symbols(void *const *buffer, int size); void backtrac

Matlab中常见的神经网络训练函数和学习函数

一.训练函数 1.traingd Name:Gradient descent backpropagation (梯度下降反向传播算法 ) Description:triangd is a network training function that updates weight and bias values  according to gradient descent. 2.traingda Name:Gradient descent  with adaptive learning rate

第1阶段——uboot启动函数bootm命令分析(9)

本节主要学习: 详细分析UBOOT中"bootcmd=nand read.jffs2 0x30007FC0 kernel;bootm 0x30007FC0"中怎么实现bootm命令启动内核. 其中bootm要做的事情:a 读取头部,把内核拷贝到合适的地方(0X30008000)b 在do_boom_linux()中把参数给内核准备好,并告诉内核参数的首地址c 在do_boom_linux()中最后使用theKernel () 引导内核. {注意:当在cmd_bootm.C中没有定义宏C

【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)

[PHP]PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数) 前言 由于业务需要,我们需要从业务中汇总数据,并生成Excel文件. 思路是这样的 PHP要导出Excel表格文件->找一个好用的第三方库吧->在Composer的Packages里找一个吧->PHPExcel这么多收藏,就它了! PHPExcel 概述 PHPExcel is a library written in pure PHP and providing a set of classes th

【反汇编分析】C++成员函数和虚函数

本节通过反汇编研究C++非static成员函数和虚函数的执行流程: 代码片段如下 class Animal { public: virtual void print() { cout << "Animal::print "<< endl; } void print2() { cout << "Animal::print2 "<< endl; } }; class Dog : public Animal { public

理解ATL中的一些汇编代码(通过Thunk技术来调用类成员函数)

我们知道ATL(活动模板库)是一套很小巧高效的COM开发库,它本身的核心文件其实没几个,COM相关的(主要是atlbase.h, atlcom.h),另外还有一个窗口相关的(atlwin.h), 所以拿来学习应该是很方便的.但是因为ATL的代码充满了模板和宏,内部还夹杂着汇编,所以如果没有比较丰富的C++模板和系统底层的知识,一般人会看得一头雾水. 下面我们主要分析一下ATL中的一些汇编代码. ATL中出现汇编代码主要是2处,一处是通过Thunk技术来调用类成员函数处理消息:还有一处是通过打开_