第九章C语言作业

题目: 9.1定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值

  • 代码
#include <stdio.h>
#define SWAP(a,b)t=a;a=b;b=t;
int main(){
    int x,y,t;
    scanf("%d%d",&x,&y);
    SWAP(x,y);
    printf("%d %d",x,y);
    return 0;
}
  • 运行结果
    在这里插入图片描述

题目:9.6请设计输出实数的格式,实数用"%6.2f"格式输出。要求:
(1)一行输出1个实数
(2)一行内输出2个实数
(3)一行内输出3个实数

  • 代码实现
#include <stdio.h>
#define PRINTF printf
#define NL printf("\n");
#define PT1(a) PRINTF("%6.2f",a);    //一行输出一个 
#define PT2(a,b) PT1(a) PRINTF("%6.2f",b);	//一行输出两个
#define PT3(a,b,c) PT2(a,b) PRINTF("%6.2f");	//一行输出三个
int main(){
    float a,b,c;
	PRINTF("输入a,b,c三个数:\n");
	scanf("%f%f%f",&a,&b,&c);
	PT1(a);
	NL
	PT1(b);
	NL
	PT1(c);
	NL
	PT2(a,b);
	NL
	PT1(c);
	NL
	PT3(a,b,c);
	NL
    return 0;
}
  • 运行结果
    在这里插入图片描述

题目:9.8分别用函数和带参数的宏,从3个数中找出最大值

  • 代码实现
#include <stdio.h>
#define MAX(a,b,c) (a>b ? (a>c ? a : c) : (b>c ? b : c))//注意三目运算
int max();
int main(){
    int a,b,c,ans;
    scanf("%d%d%d",&a,&b,&c);
//    ans=max(a,b,c);//函数的调用
    printf("%d",MAX (a,b,c));
    return 0;
}
int max(int a,int b,int c){
	int ans=b;
	if(a>b){
		ans=a;
	}
	if(ans<c){
		ans=c;
	}
	return ans;
}
  • 运行结果
    在这里插入图片描述

题目:9.10 用条件编译方法实现以下功能
输入一行电报文字,可以任选两种输出:一为原文输出;一为将字母变成其下一字母(如’a’变成’b’,…,‘z’变成’a’),其他非字母字符不变,用#define命令来控制是否要编译成密码。例如:
#define CHANGE 1
则输出密码。若
#define CHANGE 0
则不编译密码,按原码输出。

  • 代码实现
#include <stdio.h>
#define CHANGE 1//可以修改为0 
int main(){
	char str[20];//保存字符串 
	int i;
	printf("输入一行字符串:\n");
	gets(str);
	printf("输出字符串:\n");
	if(CHANGE){//根据宏进行判断,CHANGE==1 
		for(i=0;i<20;i++){
			if(str[i]!='\0'){
				if(str[i]>='a'&&str[i]<'z'||str[i]>='A'&&str[i]<'Z'){
					str[i]++;
				}else if(str[i]=='z'||str[i]=='Z'){
					str[i]-=25;	
				}
			}
		} 
	}
	printf("%s",str);//输出结果 
}
  • 运行结果
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值