以计算器简单应用的C语言函数调用源码

简介: 以计算器简单应用的C语言函数调用源码


#include <stdio.h>
#include <stdlib.h>
void tips()//定义tips
  {
    printf("**********************\n");//输出
    printf("**小浩版计算器****\n");//输出
  void tipswhichcalc(char suanfa)//声明选择是是什么算法,并定义算法
  {
    switch(suanfa)算法传参
    {
      case '+': //如果是加法 
      printf("你计算的是加法\n");//输出加法
      break;//退出
      case '-': //如果是减法 
      printf("你计算的是减法\n");//输出减法
      break;//退出
      case '*':  //如果是乘法
      printf("你计算的是乘法\n");//输出乘法
      break;//退出
      case '/':  //如果是除法
      printf("你计算的是除法\n");//输出除法
      break;//退出
      default://除非
      printf("你选择的算法超出计算器能力\n");//输出
      break;//退出
    }
  } 
int jiafa(int x,int y)//声明加法
   { 
    int z;//定义整形变量z
    z = x+y;//z=x+y
    return z;//返回z
   }
int jianfa(int x,int y)//声明减法
   { 
    int z;
    z = x-y;
    return z;
   }
int chengfa(int x,int y)//声明乘法
   { 
    int z;
    z = x*y;
    return z;
   }
int chufa(int x,int y)//声明除法
   { 
    int z;
    z = x/y;
    return z;
   }
  void realcalc (int data1,int data2,char suanfa)//声明 realcalc 
  {
    switch(suanfa)//循环语句,根据printf传参给suanfa
    {
        case '+':
        printf("你计算的加法结果是%d\n",jiafa(data1,data2));//调用加法
        break;
        case '-':
        printf("你计算的减法结果是%d\n",jianfa(data1,data2));//调用减法
        break;
        case '*':
        printf("你计算的乘法结果是%d\n",chengfa(data1,data2));//调用乘法
        break;
        case '/':
        printf("你计算的除法结果是%d\n",chufa(data1,data2));//调用除法
        break;
    }
  }    
void calc(char suanfa)//声明calc
 {
     int data1;
     int data2;
     tipswhichcalc(suanfa);//调用tipswhichcalc里传回suanfa的参数
     printf("请输入第一个数\n");//输出第一个数
     scanf("%d",&data1);//输入数给data1
     printf("请输入第二个数\n");//输出第二个数
     scanf("%d",&data2);//输出数给data2
   realcalc(data1,data2,suanfa);//调用realcalc,并定义形参
 }
int main()
{
    int data1;
    int data2;
  // int ret;
   // float retchufa;
    char suanfa;
  int mark = 0;
    while(1)//循环,不用每次执行
    {
      tips();//调用小浩版计算器
      if(mark !=0)
         getchar();//这里的作用是把输data2以后的回车吸收掉,不想第一次进来的时候被调用,所以通过Mark来控制。
      mark =1;
      scanf("%c",&suanfa);//先输入了+,再输入了回车。
      getchar();//回车符也是一种字符,getchar函数用来获取一个字符,在这里的作用是把回车吸收掉。
       calc(suanfa);//调用calc
    }
  system("pause");//使界面一直显示
  return 0;
}
//其中有多次调用为精髓,形参后再形参再计算传参


20200531225743528.png

如有不足之处请批评指正。

相关文章
|
2月前
|
C语言
【数据结构】栈和队列(c语言实现)(附源码)
本文介绍了栈和队列两种数据结构。栈是一种只能在一端进行插入和删除操作的线性表,遵循“先进后出”原则;队列则在一端插入、另一端删除,遵循“先进先出”原则。文章详细讲解了栈和队列的结构定义、方法声明及实现,并提供了完整的代码示例。栈和队列在实际应用中非常广泛,如二叉树的层序遍历和快速排序的非递归实现等。
232 9
|
2月前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
68 5
|
2月前
|
存储 程序员 编译器
C 语言数组与指针的深度剖析与应用
在C语言中,数组与指针是核心概念,二者既独立又紧密相连。数组是在连续内存中存储相同类型数据的结构,而指针则存储内存地址,二者结合可在数据处理、函数传参等方面发挥巨大作用。掌握它们的特性和关系,对于优化程序性能、灵活处理数据结构至关重要。
|
2月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
51 1
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
65 1
|
2月前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
47 2
|
2月前
|
存储 C语言 计算机视觉
在C语言中指针数组和数组指针在动态内存分配中的应用
在C语言中,指针数组和数组指针均可用于动态内存分配。指针数组是数组的每个元素都是指针,可用于指向多个动态分配的内存块;数组指针则指向一个数组,可动态分配和管理大型数据结构。两者结合使用,灵活高效地管理内存。
|
2月前
|
存储 NoSQL 编译器
C 语言中指针数组与数组指针的辨析与应用
在C语言中,指针数组和数组指针是两个容易混淆但用途不同的概念。指针数组是一个数组,其元素是指针类型;而数组指针是指向数组的指针。两者在声明、使用及内存布局上各有特点,正确理解它们有助于更高效地编程。
|
2月前
|
存储 搜索推荐 算法
【数据结构】树型结构详解 + 堆的实现(c语言)(附源码)
本文介绍了树和二叉树的基本概念及结构,重点讲解了堆这一重要的数据结构。堆是一种特殊的完全二叉树,常用于实现优先队列和高效的排序算法(如堆排序)。文章详细描述了堆的性质、存储方式及其实现方法,包括插入、删除和取堆顶数据等操作的具体实现。通过这些内容,读者可以全面了解堆的原理和应用。
103 16
|
2月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(下)(c语言实现)(附源码)
本文继续学习并实现了八大排序算法中的后四种:堆排序、快速排序、归并排序和计数排序。详细介绍了每种排序算法的原理、步骤和代码实现,并通过测试数据展示了它们的性能表现。堆排序利用堆的特性进行排序,快速排序通过递归和多种划分方法实现高效排序,归并排序通过分治法将问题分解后再合并,计数排序则通过统计每个元素的出现次数实现非比较排序。最后,文章还对比了这些排序算法在处理一百万个整形数据时的运行时间,帮助读者了解不同算法的优劣。
142 7