C语言练习8.2

1.宏的定义  #define MAX(X,Y)(X,Y?X:Y) 


#include <stdio.h>
// 宏的定义
#define MAX(X,Y)(X>Y?X:Y)

int Max(int x, int y) {
	if (x > y)
		return x;
	
	else 
		return y;

}
// 宏的定义
#define MAX(X,Y)(X>Y?X:Y)
int main()
{
	int a = 10;
	int b = 20;
	//函数
	int max = Max(a, b);
	printf("max=%d\n", max);

	//宏的方式
	max = MAX(a, b);
	//max=(a>b?a:b);
	printf("max=%d\n", max);
	return 0;
}

这里可以用函数的方法 int max = Max(a,b);

也可以用宏的定义 max = MAX(a,b) 或者 max=MAX(a>b?a:b) 真2假3;

2.输出1-100的奇数

方法一:
int main()
{
	int i = 1;
	while (i <= 100)
	{
		if (i % 2 == 1)
			printf("%d ", i);
		i++;
	}
	return 0;
}
方法二:
int main()
{
	int i = 1;
	for (i = 1; i <= 100; i=i+2)
	{
		printf("%d ", i);

	}
	return 0;
}


int main()
{
	int i = 1;
	while (i <= 100)
	{
		printf("%d ", i);
		i = i + 2;

	}
	return 0;
}
 

3.switch语句(break 每一行都要放)


int main()
{
	int day;
	scanf("%d", &day);
	switch (day)//括号里面放整型表达式   day定义为int
	{
	case 1:
		printf("星期1\n");
		break;
	case 2:
		printf("星期2\n");
		break;
	case 3:
		printf("星期3\n");
		break;
	case 4:
		printf("星期4\n");
		break;

	}


	int day;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
        printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("休息日\n");
		break;//最后一个break尽量加上
	default://处理非法的错误 没有顺序 可以放最前面
		printf("输入错误\n");
		break;
	}

	return 0;
}

求一下m 和 n 的值:


int main()
{
	int n = 1;
	int m = 2;
	switch (n)
	{
	case 1:m++;//3
	case 2:n++;//2
	case 3:
		switch (n)
		{//switch允许嵌套使用
		case 1:n++;//3
		case 2:m++; n++; break;//这里的break只是结束了内部的switch  case 3 本身没有break
			//所以运行到case 4 才结束

		}
	case 4:m++;//m=5
		break;
	}
	printf("m=%d n=%d", m, n);
	return 0;
}

4.break和continue

int main()
{
 
    int i = 0;
	while (i <= 10)
	{
		i++;
		if (i == 5)
			continue;//跳过后面的代码 往上走  ; 
		//用于终止本次循环的,也就是本次循环中continue后面的代码不会再执行,而是直接跳转到while语句的判断部分
		//进行下一次循环的入口判断
		printf("%d ", i); //1 2 3 4 6
		
	}



	int i = 1;
	while (i<=10)
	{
		if (i == 5)
			break;//在i==5 的时候跳出循环  用于永久终止循环
		printf("%d ", i);// 1 2 3 4
		i++;//打印1-10的数字
	}
	return 0;
}

5.计算n的阶乘

#include <stdio.h>

int main()
{
	int n = 0;
	int ret = 1;
	int i = 0;
	scanf("%d", &n);
	for (i = 1; i <= n; i++) //倒着来
	{
		ret = ret * i;

	}
	printf("阶乘为:%d", ret);
	return 0;
}

6.计算1!+2!+3!+......10!

int main()
{
	int i = 0;
	int n = 0;
	int ret = 1;
	int sum = 0;
	for (n = 1; n <= 10; n++)
	{
		int ret = 1;
		for (i = 1; i <= n; i++)
		{
			ret = ret * i;

		}
		sum = sum + ret;

	}
	printf("sum=%d", sum);
	return 0;
}


or

int main()
{
	int i = 0;
	int ret = 1;
	int sum = 0;
	for (i = 1; i<= 10; i++)
	{
		    ret = ret * i;
			sum = sum + ret;

	}
	printf("sum=%d", sum);
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值