栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

谭浩强C语言第四版——例题及章节习题(第二章)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

谭浩强C语言第四版——例题及章节习题(第二章)

第二章 代码例题
//【例2.1】求1×2×3×4×5
#include 
int main()
{
	int i, n, sum;
	i = 1;
	n = 5;
	sum = 1;
	for (i = 1; i <= 5; i++)
	{
		sum = sum * i;
	}
	printf("sum = %dn", sum);
  return 0;
}

【例2.2】有50个学生,要求输出成绩在80分以上的学生的学号和成绩


//【例2.3】判定2000—2500年中的每一年是否为闰年,并将结果输出
#include 
int main()
{
	int year, ret;
	ret = 0;
	for (year = 2000; year <= 2500; year++)
	{
		if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
		{
			printf("%d ", year);
			ret++;
		}
	}
	printf("nn2000-2500期间一共有%d个闰年n",ret);
	return 0;
}

//【例2.4】求 1−1/2+1/3−1/4+⋯+1/99−1/100
#include 
int main()
{
	int i, flag;
	double sum;
	i = 1;
	flag = 1;
	sum = 0.0;
	for (i = 1; i <= 100; i++)
	{
		sum = sum + flag * 1.0 / i; 
		flag = -flag;
	}
	printf("sum = %lfn", sum);
	return 0;
}

//【例2.5】给出一个大于或等于3的正整数,判断它是不是一个素数
#include 
#include 
int main()
{
	int num;
	scanf("%d", &num);
	int i,flag;
	flag = 1;//1表示是素数 0表示不是素数
	for (i = 2; i <= sqrt(num); i++)
	{
		if (num % i == 0)
			flag = 0;
	}
	if (flag == 1)
		printf("%d是素数n", num);
	if (flag == 0)
		printf("%d不是素数n", num);
	return 0;
}
第二章 代码习题
//T 2-4(2)
//输入十个数,输出其中最大值
#include 
int main()
{
	int arr[10] = { 0 };
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		scanf("%d", &arr[i]);
	}
	int max = arr[0];
	for (i = 0; i < 10; i++)
	{
		if (arr[i] > max)
			max = arr[i];
	}
	printf("max = %dn", max);
	return 0;
}


//T 2-4(3)
//3个数按大小顺序输出
#include 
int main()
{
	int a, b, c;
	scanf("%d%d%d", &a, &b, &c);
	int tmp;
	if (a < b)
	{
		tmp = a;
		a = b;
		b = tmp;
	}
	if (a < c)
	{
		tmp = a;
		a = c;
		c = tmp;
	}
	if (b < c)
	{
		tmp = b;
		b = c;
		c = tmp;
	}
	printf("三个数从大到小输出为%d %d %dn",a,b,c);
	return 0;
}

//T 2-4(4)
//求1-100的加和
#include 
int main()
{
	int i, sum;
	i = 0;
	sum = 0;
	for (i = 1; i <= 100; i++)
	{
		sum += i;
	}
	printf("sum = %dn", sum);
	return 0;
}

//T 2-4(5)
//判断一个数能否同时被3和5整除
#include 
int main()
{
	int num = 0;
	scanf("%d", &num);
	if ((num % 3 == 0) && (num % 5 == 0))
		printf("%d能同时被3和5整除n", num);
	else
		printf("%d不能同时被3和5整除n", num);
	return 0;
}


//T 2-4(6)
//输出100-200之间的素数
#include 
#include 
int main()
{
	int num = 0;
	int count = 0;
	for (num = 100; num <= 200; num++)
	{
		int flag = 1;//1表示是素数 0表示不是素数
		int j = 0;

		for (j = 2; j <= sqrt(num); j++)
		{
			if (num % j == 0)
			{
				flag = 0;
				break;
			}

		}

		if (flag == 1)
		{
			printf("%d ", num);
			count++;
		}

	}
	printf("nn100-200之间有 %d 个素数", count);
	return 0;
}


//T 2-4(7)
//求两个数的最大公约数
#include 
int main()
{
	int m, n;
	scanf("%d%d", &m, &n);
	int r = m;
	while (r != 0)
	{
		m = n;
		n = r;
		r = m % n;
	}
	printf("这两个数的最大公约数为%dn", n);
	return 0;
}


//T 2-4(8)
//求二元一次方程的根 a*x^2+b*x+c=0 
//分三种情况讨论 ①有两个相等的实数根(b^-4*a*c)==0  ②有两个不等的实数根(b^-4*a*c)>0  ③无实数根(b^-4*a*c)<0
#include 
#include 
int main()
{
	double a = 0.0;
	double b = 0.0;
	double c = 0.0;
	scanf("%lf%lf%lf", &a, &b, &c);
	double x1 = 0.0;
	double x2 = 0.0;
	double judge = b * b - 4 * a * c;
	double front = (-b) / (2 * a);
	double back = sqrt(judge) / (2 * a);
	if (judge == 0.0)
	{
		x1 = x2 = front;
		printf("x1 = %0.2lf,  x2 = %0.2lfn",x1,x2);
	}
	if (judge > 0)
	{
		x1 = front + back;
		x2 = front - back;
		printf("x1 = %0.2lf,  x2 = %0.2lfn", x1, x2);
	}
	if (judge < 0)
	{
		double front = (-b) / (2 * a);
		double back = sqrt(-judge) / (2 * a);
		printf("x1 = %0.2lf + %0.2lfi,  x2 =%0.2lf - %0.2lfin", front, back, front, back);
	}
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1033545.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号