1.
#define F(a,b) \
do \
{ \
(a)=(a)^(b); \
(b)=(b)^(a); \
(a)=(a)^(b); \
}while(0)
int main()
{
int a=3,b=5;
F(a,b);
printf("a=%d,b=%d",a,b);
}
2.
#include
char *fun(int n)
{
static char s[100];
int i=98;
s[99]='\0';
while(n)
{
s[i--]=n%2+'0';
n/=2;
}
return s+i+1;
}
int main()
{
int n;
scanf("%d",&n);
printf("%s",fun(n));
}
第二题如下
#include
#include
int fun(int n)
{
if (n / 2 == 0)
return 1;
else
{
printf("%d", fun(n / 2));
return n % 2;
}
}
main()
{
int i;
clrscr();
printf("输入十进制数:");
scanf("%d", &i);
printf("转换成二进制数后为%d", fun(i));
}
第一题一会儿给你!
第一题如下
#include "stdio.h"
#define SWAP(a,b) {a=a+b;b=a-b;a=a-b;}
void main()
{
int x,y;
printf("输入两个数:");
scanf("%d%d",&x,&y);
SWAP(x,y);
printf("交换后为x=%d y=%d\n",x,y);
}
#include
#define f(a,b) a=a+b,b=a-b,a=a-b
void g(int k);
main()
{
int a,b,k,i,j;
printf("a=");
scanf("%d",&a);
printf("b=");
scanf("%d",&b);
f(a,b);
printf("交换后如下:\na=%d,b=%d\n",a,b);
printf("输入要转化的数字:");
scanf("%d",&k);
g(k);
}
void g(int k)
{
while(k)
{
printf("%d",k%2);
k/=2;
}
}
# include
# define SWAP(a, b) ((a)=((a)+(b)-(b=a)))//宏
void print(int n)//输出二进制的函数
{
int i = 0;
for(i=0; i<=32; i++)
{
printf("%d", n<0);
n<<=1;
}
}
int main()
{
int a = 1;
int b = 2;
SWAP(a, b);
printf("a = %d\n", a);
printf("b = %d\n", b);
print(a);
return 0;
}
// 无聊.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include
using namespace std;
#define swap(a,b) (a)=(a)+(b);(b)=(a)-(b);(a)=(a)-(b);
void dtob(int n)
{
//递归出口条件是n为1
if( n == 1)
{
cout << n ;
return ;
}
dtob(n/2);
cout <
}
int _tmain(int argc, _TCHAR* argv[])
{
int a =10, b = 20;
swap(a,b);
cout << "a= " << a << " b = " << b <
cout << endl;
return 0;
}