写出两个数交换的宏定义并调用
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 13:31:41
1、定义个带参数的宏,使两个参数的值交换,并写出程序,输入两个数作为调用宏时的参数,输出交换后的两个#include#defineT(a,b){intc;c=a;a=b;b=c;}intmain(vo
参考程序如下:(我自己编写的,可能有不足之处,望见谅)#includeintmax(intx,inty){intt;t=x>y?x:y;returnt;}voidmain(){inta,b,c,m;p
#include#include#includeintcompare(intm,intn);intmain(){inta,b,c;srand((unsignedint)time(NULL));a=ra
Bigger(inta,intb){returna>b?a:b;}Biggest(inta,intb,intc){returnBigger(a,b)>c:Bigger(a,b):c;}
//定义复数类,构造两个对象,并调用成员函数对它们进行加减乘除#include"iostream.h"classComplex{private:doublereal;doubl
intmax_num(inta[3]){inttep;a[0]>a[1]?tep=a[0]:tep=a[1];returntep>a[1]?tep:a[2];}voidmain(){inta[3],m
include"stdio.h"intcountdigit(inta,intb){\x09intcount=0;\x09do\x09{\x09\x09if(b==a%10)\x09\x09\x09co
#include#includeintmax(inta,intb){if(a>b)returna;if(a
问:但为什么倒数第二行的swap(x,y);不改为swap(&x,&y);与调用函数对应呢答:比如一个函数定义为voidfunc(a);那我们可以这样调用voidfunc(b)对吧?实际上函数在堆栈上
#includevoidswap(int*a,int*b){inttemp;temp=*a;*a=*b;*b=temp;}intmax(inta,intb){returna>b?a:b;}voidma
#includevoidswap(int*a,int*b){\x09inttemp;\x09temp=*a;\x09*a=*b;\x09*b=temp;}intmain(){\x09inta,b;\x
#include#defineswap(a,b)do{intc;c=b;b=a;a=c;}while(0)main(){inta=3,b=5;swap(a,b);printf("%d%d",a,b);
判断x-1是否为0,是执行循环,不是退出循环.--x等价x=x-1.!是取非值,非零取零,零取非零.while(此中值非零时循环)……宏定义中变量于主函数中站同一内存空间,故可以直接改值.而自定义函数
#includevoidfun(int*a,int*b){inttemp;temp=*a;*a=*b;*b=temp;}main(){inta=1;intb=2;fun(&a,&b);printf("
具体代码如下:#includeintcountdigit(intnumber,intdigit){intcount=0;while(number){if((number%10)==digit)coun
#include <stdio.h>#include <math.h>int main(void){ long i
#includeintmaxy(int&a,int&b){intn,i,j;for(i=1;i>x>>y;s=maxy(x,y);cout
#include <iostream>#include <string>using namespace std;int mai
这个比较简单吧.注意传输地址.