谭浩强【C程序设计】课后编程题(第二章)

//Homework
//2.4(1)
void exchange_Num(int *a,int *b)
{
	int* p=*a;
	*a = *b;
	*b = *p;
}

//2.4(2)
int sum_Num(int a[],int n)
{
	int i;
	int sum;
	sum = 0;
	for (i = 0; i < n; i++)
	{
		sum = sum + a[i];
	}
	return sum;
}
//2.4(3)
int num_Squence(int a, int b, int c)
{
	int max, mid, min;
	if (a >= b)   // 如果a>=b
	{
		if (a >= c) // a>=c
		{
			max = a; // 最大值为a
			if (b >= c)  // 找出次大值
			{
				mid = b, min = c;
			}
			else
				mid = c, min = b;
		}
	}
	else    // a<b,比较b和c
	{ 
		if(c>=b)
		{ 
			max = c;
			if (a >= b)
			{
				mid = a;
				min = b;
			}
			else
				mid = b, min = a;
		}		 	
	}
	printf("%d %d %d", max, mid, min);
	return 0;
}
//2.4(4)
int sum_Add(void)
{
	int i;
	int sum;
	sum = 0;
	for (i = 1; i <= 100; i++)
	{
		sum = sum + i;
	}
	return sum;
}
//2.4(5)
int num_isDived(int num)
{
	int flag=0;
	flag = (num % 3 == 0 && num % 5 == 0) ? (1) : (0);
	return flag;
}

//2.4(6)
int num_isPrime(void)
{
	int i,j=2;
	for (i = 100; i <= 200; i++)
	{
		while ((j <= i - 1) && (i % j == 0))  // 如果这个数不是素数,除了1和它本身,含有其他公因子
		{
			printf("%d is not a prime number.\n",i); 
			j++;
		}
		printf("%d is a prime number.\n", i);
	}
}
//2.4(7)
int xy_Maxcodiv(int x,int y)
{
	int max_div; //最大公因子
	int result;
	int i = 0;
	if (x > y)
		max_div = x;
	else
	{
		max_div = y;
	}
	for (i = 1; i <= max_div; i++)
	{
		if (x % i == 0 && y % i == 0) //同时被整除
		{
			result = i;
		}
	}
	return result;
}
//2.4(8)
int root_square(double a, float b, double c)
{
	double delta;
	double zero = 0.0;
	double x1, x2;
	delta = b * b - 4 * a * c;  // 求delta
	if (delta < zero)           // 虚根
	{
		printf("无实根\n");
		return -1;
	}
	else if (delta > zero)
	{
		x1 = -(b + sqrt(b * b - 4 * a * c)) / (2 * a);
		x2 = -(b - sqrt(b * b - 4 * a * c)) / (2 * a);
	}
	else
	{
		x1 = x2 = -(b / 2 * a);
	}
	return 1;
}

//2.8
void year_isLeap(void)
{
	int i;
	for (i = 1900; i <= 2000; i += 4)
	{
		if ((i % 4 == 0 && i % 100 != 0) || (i % 100 == 0 && i % 400 == 0))
		{
			printf("%d\n", i);
		}
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vicssic

与你一起成长

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值