问两道C语言作业题
一、定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参,输出交换后的两个值二、通过函数调用方式将一个十进制数转换成相应的二进制数...
一、定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参,输出交换后的两个值
二、通过函数调用方式将一个十进制数转换成相应的二进制数 展开
二、通过函数调用方式将一个十进制数转换成相应的二进制数 展开
6个回答
展开全部
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 <stdio.h>
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<stdio.h>
#include<conio.h>
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<stdio.h>
#include<conio.h>
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<stdio.h>
#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;
}
}
#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 <stdio.h>
# 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;
}
# 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 <iostream>
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 <<n % 2 ;
return ;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a =10, b = 20;
swap(a,b);
cout << "a= " << a << " b = " << b <<endl;
dtob(128);
cout << endl;
return 0;
}
//
#include "stdafx.h"
#include <iostream>
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 <<n % 2 ;
return ;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a =10, b = 20;
swap(a,b);
cout << "a= " << a << " b = " << b <<endl;
dtob(128);
cout << endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询