c语言 函数 选择 循环

函数

1 什么是函数:
函数是一个功能模块,它把实现某个功能的代码块包含起来,并起一个函数名,供别人调用,如printf函数,如system函数。是程序运行当中包装起来的一个步骤
2 为什么用函数:

  1. 代码很好看
  2. 容易定位问题
  3. 可复用强
  4. 分工

3 如何定义一个函数 int prepare():

  1. 函数名
  2. 形式参数
  3. 返回值
  4. 函数体:代码块

4 如何调用一个函数
函数名(实际参数)
函数名();

5 函数可以多级调用

6 一般函数定义几种情况
1. 无返回值无参数
2. 无返回值有参数
形式参数,局部变量(仅限于该函数)
申请空间
当函数调用的时候,才申请了该内存空间,才有了这个变量。同时,这个空间的数据被赋值秤实际参数的值,函数调用是将实际参数的值赋值给形式参数,此时内存有两个相同变量。
释放空间
函数执行结束后 该空间有内存管理单元自动回收
形式参数灵活
3. 有返回值有参数
y=f(x)
通过 return XXX; 把执行结果返回给调用者
4. 有返回值有多个同类型参数
z=f(x,y))
5. 有返回值有多个参数,参数类型不同
6. 根据需求各种组合都行
参数 个数,类型
返回值 类型

应用实例

#include <stdio.h>
#include <stdlib.h>


int ziJiaYi(int scrDate)
{
	return ++scrDate;//  ++a把a现有的值加1后使用 a++先使用再++
}

int buyYan(int cut)
{
	return cut;
}

int  f(int x)
{
	int y;
    //printf("f:y=%p\n",&y);
    //printf("y=%d\n",y);
	y = 2*x + 1;
    
    printf("y=%d\n",y);
    
    return y;//把函数执行的结果返回给调用者 返回一个整数 取决于return后面的变量
    
}


int main()
{
	int a=1000;
	int cut = 10;
    int y = 0;
    int x = 100;
    int ret;
    //printf("f:y=%p\n",&y);
    y = f(x);
	printf("y=%d\n",y);
    
    a = ziJiaYi(a);
    printf("a=%d\n",a);

	ret = buyYan(cut);
    if(ret == 10){
		printf("买烟成功\n");
    }
	return 0;
}

结果

y=201
y=201
a=1001
买烟成功

选择 循环

选择

1 if

if(...){
	...
}else if(...){
	if(){//嵌套
		
	}else{
		
	}
}else{
	...
}

2 switch

switch(a)
{   
    case 1:
        ...
        break;
    case 2:
        ...
        break;
    case 3:
        ...
        break;
    default:
        ...
        break;
            
} 

循环

1 while

while(1)//结果为真一直执行
{	
	...
}

2 for

int i;
for(i=0;i++;i<20){
	...
}

3 do …while

do
{
	.....

}while(...);

自制计算机

实现加减乘除运算

#include <stdio.h>
#include <stdlib.h>

int jia(int a,int b)
{
	int c;
	c = a+b;
	return c;
}
int jian(int a,int b)
{
    int c;
    c = a-b;
    return c;
}
int cheng(int a,int b)
{
    int c;
    c = a*b;
    return c;
}
float chu(int a,int b)
{
    float c;
    c = (float)a/b;
    return c;
}


void print()
{
	printf("=============================\n");
	printf("===========计算机============\n");
    printf("=============================\n");
    printf("===========林瑞淼============\n");
    printf("=============================\n");
	printf("==========输入q退出==========\n");	
}


int xuanze(char c)
{
	int mark;
	switch(c){
		case '+':
			printf("你选择了加法\n");
			mark = 1;
			break;
		case '-':
            printf("你选择了减法\n");
            mark = 2;
            break;
		case '*':
            printf("你选择了乘法\n");
            mark = 3;
            break;
		case '/':
            printf("你选择了除法\n");
            mark = 4;
            break;
		case 'q':
			printf("退出\n");
			mark = 0;
			break;
		default:
			printf("你输入了错误的东西\n");
			mark = 5;
			break;
	}
	return mark;
}

void yunsuan(int mark)
{
	int a;
	int b;
	int c;
	float d;
	printf("请输入2个数\n");
	scanf("%d",&a);
	scanf("%d",&b);
	switch(mark){
		case 1:
			c = jia(a,b);
			printf("%d+%d=%d\n",a,b,c);
			break;
		case 2:
            c = jian(a,b);
            printf("%d-%d=%d\n",a,b,c);
            break;
		case 3:
            c = cheng(a,b);
            printf("%d*%d=%d\n",a,b,c);
            break;
		case 4:
            d = chu(a,b);
            printf("%d/%d=%.2f\n",a,b,d);
            break;
	}			
	
}


int main()
{
	int mark = 1;
	char c;
	print();
	while(mark){
		printf("======请输入+, -, *, /=======\n");
		scanf("%c",&c);
		getchar();
		
		mark = xuanze(c);
		
		if(mark == 0 || mark == 5){
			continue;
		}
		yunsuan(mark);
		getchar();
	}


	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值