C---函数

定义函数的几种情况

一.参数问题:

形参也是局部变量
形式参数:有点类似变量的定义,写法也类似,如int a
实际参数:对格式没要求(如可以写整数5作为实参,也可以t提前定义整型变量a=5,a作为实参),对数据类型严格要求

void buyrice(int jinshu)
{
        printf("去买%d斤米\n",jinshu);
}

jinshu是局部变量,同时也是个形式参数,作用域仅限该函数。

空间生存期:

申请空间:
当函数被调用时,才申请了该内存空间,才有了这个变量,同时,这个空间内的数据被赋值成实参的值,函数调用把实参的值拷贝一份给形参
释放空间:
函数执行结束后,该空间由内存管理单元自动回收。

void buyrice(int jinshu)
{
        printf("去买%d斤米\n",jinshu);
        jinshu++;
        printf("jinshu=%d\n",jinshu);
}

int main()
{
          int a = 30;
          buyrice(a);
          printf("main: a=%d\n",a);
          return 0;
}

最终main函数执行结果:a=30
虽然在burice中,jinshu++ 变成31,但仅限于该函数,该函数调用结束后,回到主函数,a不变,在该函数调用时,主函数只是拷贝了一个a给他用,(两个a的地址也不一样)不会改变自己!!!

计算器

1.除法部分:

float  chufa(int x,int y)
{
        float  z;
        z = (float )x/y;  
         //不同数据类型运算,比如两个整数相除,必须将除数或被除数强转成小数,否则小数部分被忽略
        return z;
}
  1. scanf 常配合getchar(); 吸收回车(回车符也是一种字符 )
    基础学习使用,以后不常用。
计算器代码:
#include <stdio.h>
#include <stdlib.h>


int jia(int a,int b)
{
      int ret  ;
      ret = a+b ;
      return ret ;      
}

int jian(int a,int b)
{
      int  ret  ;
      ret = a-b;
      return ret;      
}

int cheng(int a,int b)
{
      int  ret  ;
      ret = a*b;
      return ret;      
}

int chu(int a,int b)
{
      float  ret  ;
      ret = (float)a/b;
      return ret;      
}
   
 
int suanfa()
{
    char cmd;
    printf("选择+ - * /.\n");
    scanf("%c",&cmd);
     
    return cmd;    
}  
  void tips()
      {
          printf("请输入算法\n");      
      }  
int main()
{
     int a;
     int b;
     int ret;
     char cmd;
      
     
     while(1){
     printf("第一个数:\n");
     scanf("%d",&a);
     
     printf("第二个数:\n");
     scanf("%d",&b);
     getchar();
      tips();
      
      scanf("%c",&cmd);
      getchar();
      
      switch(cmd){
 
           case '+':
          jia(a,b);
          printf("%d+%d=%d\n",a,b,a+b);
         
           break;
           
           case '-':
           jian(a,b);
           printf("%d-%d=%d\n",a,b,a-b);
           break;
           
           case '*':
           cheng(a,b);
           printf("%d*%d=%d\n",a,b,a*b);
           break;
           
           case '/':
           chu(a,b);
           printf("%d/%d=%d\n",a,b,a/b);  
           break;
           
           default :
          
           break;
                        
     }
     }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值