对两个整数进行加、减、乘、除

#include<stdio.h>

int add(int a,int b)

{

return a+b;

}

int sub(int a,int b)

{

return a-b;

}

int mul(int a,int b)

{

return a*b;

}

int div(int a,int b)

{

return a/b;

}

void result(int(*p)(),int a,int b)                      //使用函数的指针p作为result函数的形参

{

int value;

value=(*p)(a,b);                                    //使用函数指针变量形式灵活地调用加、减、乘除4个函数

printf("%d\t",value);

}

main()

{

int i,j;

int (*pf)();            //定义一个函数的指针pf

printf("input two integer i,j:");

scanf("%d,%d",&i,&j);

pf=add;                                     //将加法函数的函数名add赋给函数指针pf

result(pf,i,j);                     //将函数指针pf作为函数的实参传递给result函数的第一个参数

pf=sub;

result(pf,i,j);

pf=mul;

result(pf,i,j);

pf=div;

result(pf,i,j);

printf("\n");

}

时间: 2024-11-15 03:55:53

对两个整数进行加、减、乘、除的相关文章

二进制整数的加,减运算

前言 在平时的编程中,当进行整数运算时,经常会遇到一些奇怪的结果,比如两个正数相加出现了负数,两个负数相加出现了正数,这些都是因为数值表示的有限性导致的.来看一个案例: int a = 0x7FFFFFFF; int b = 0x7FFFFFFF; Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(a+b); 我这是C#的代码,我告诉你输出结果吧:-2 程序中的a和b都是很大的正整数,结果它们相加会得到一个负数. 再看看用

php日期处理汇总,指定日期加减多少天,循环两个指定日期之间的日期

一. (1)指定日期加减多少天 (2)循环两个指定日期之间的日期 例: $start_time = '2017-07-01';$end_time = '2017-07-10'; 获取时间差 $diff= strtotime($end_time)-strtotime($start_time);$num = $diff/(24*60*60)+1; for ($i=0; $i < $num; $i++) { $selectTime = date("Y-m-d",strtotime(&q

大数加减1——将两个数均前后倒置,以对齐最低位

#include <stdio.h> //将读入的数据存储到num[1]~num[x]中,num[0]表示存入数据的长度. void read(int num[]) { int i; char ch; for (i = 0; i<500; i++) num[i] = 0; i = 1; while ((ch = getchar()) != '\n') { num[i] = ch - '0'; i++; num[0]++; } } //将数据num[]中的数翻转,以便计算 void rev

js中两个日期大小比较,获取当前日期,日期加减一天

一.两个日期大小比较 1.格式:(yyyy-mm-dd) function duibi(a, b,flag) { var arr = a.split("-");     var starttime = new Date(arr[0], arr[1], arr[2]);     var starttimes = starttime.getTime();     var arrs = b.split("-"); var endTime = new Date(arrs[0

加加减减

加加减减(pands.pas/c/cpp) [题目背景]话说zyk又双叒叕在A图论的题目了!!![问题描述]zyk手里有若干幅有向图,每条边有个权值.你可以在这幅图上操作若干次(也是醉了),每次可以选择一个节点u和一个整数d,把以u为起点的边的权值增加d,把以u为终点的边的权值减小d(难怪叫加加减减).然而,zyk却想让所有边权的最小值为正且尽量大.[输入文件]输入包含若干组数据.每组数据第一行为两个整数n和m(n≤500,m≤700),即点和边的个数.以下m行每行三个整数u,v,w,即一条起点

c语言-交换两个整数

使用c来写一个函数来实现交换两个整数. 第一种 一般的方法,引用中间变量,方便快捷. 1 void swap(int *a, int *b) 2 { 3 int tmp = *a; 4 *a = *b; 5 *b = tmp; 6 } 第二种 void swap(int *a, int *b) { int tmp = *a + *b; *b = tmp - *b; *a = tmp - *b; } tmp虽然可能会溢出,但是依然能够达到交换的效果. 上面的都是引用了中间变量,再看看不使用中间变量

常见的编程问题(一)少大数加减

存储区的概念 常见的存储区域可分为: 栈 由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区.里面的变量通常是局部变量.函数参数等. 堆 由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete.如果程序员没有释放掉,程序会一直占用内存,导致内存泄漏,在程序结束后,操作系统会自动回收. 由malloc等分配的内存块,它和堆是十分相似的,不过它是用free来释放分配的内存. 全局/静态存储区 全局变量和静态变量被分配到同一块内存中,在

二柱子问题扩充:1、题目避免重复; 2、可定制(数量/打印方式); 3、可以控制下列参数: 是否有乘除法、是否有括号、 数值范围、加减有无负数、除法有无余数、否支持分数 (真分数, 假分数, …)、是否支持小数 (精确到多少位)、打印中每行的间隔可调整;

程序设计思想 程序的主要设计思想为用字符串数组保存生成的运算题,将操作数采用单独算法处理,然后进行类型转换和操作符一起存入数组中,鉴于字符串的特性,可以对字符串的长度进行随意添加而不必考虑长度问题,最后进行字符串数组的输出产生客户要求的运算题; 源代码 #include<stdlib.h> #include<conio.h> #include<time.h> #include<iostream> #include<string> #include

Java中常用加减密方式

1.加密概述: 加密就是是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使以获得了加密的信息,但因不知解密方式,仍无法了解信息的内容.大体上又分为双向加密和单向加密. 2.单项加密 2.1.概述: 单向加密又称为不可逆加密算法,在加密过程中不使用密钥,明文由系统加密成密文,密文无法破解,一般都是采用验证的方式,具体是:在验证过程中,重新输入明文,并经过同样的加密算法后,得到相同的密文.单向加密广泛用于口令加密. 2.2.特点: (1)对同一消息反复执行加密得到相同的密文: (2)加密算法