算法入门记录(一)语言篇——1.5注解与习题

1.数据类型实验
实验A1:表达式11111*11111的值是多少?把5个1改成6个1呢?9个1呢?
实验A2:把实验A1中的所有数换成浮点数,结果如何?
实验A3:表达式sqrt(-10)的值是多少?尝试用各种方式输出。在计算的过程中系统会报错吗?
实验A4:表达式1.0/0.0、0.0/0.0的值是多少?尝试用各种方式输出。在计算的过程中系统会报错吗?
实验A5:表达式1.0/0.0的值是多少?在计算的过程中系统会报错吗?

源代码:

#include
#include
#include

int main()
{
	printf("------实验A1------");
	printf("11111*11111 = %d\n", 11111 * 11111);
	printf("111111*111111 = %d\n", 111111 * 111111);
	printf("111111111*111111111 = %d\t结果类型:%s\n", 111111111 * 111111111, typeid(111111111 * 111111111).name());
	
	printf("\n------实验A2------\n");
	printf("11111.0 * 11111.0 = %f\n", 11111.0 * 11111.0);
	printf("111111.0 * 111111.0 = %f\n", 111111.0 * 111111.0);
	printf("111111111.0 * 111111111.0 = %f\t结果类型:%s\n", 111111111.0 * 111111111.0, typeid(111111111.0 * 111111111.0).name());
	printf("11111.0 * 11111.0 = %lf\n", 11111.0 * 11111.0);
	printf("111111.0 * 111111.0 = %lf\n", 111111.0 * 111111.0);
	printf("111111111.0 * 111111111.0 = %lf\t结果类型:%s\n", 111111111.0 * 111111111.0, typeid(111111111.0 * 111111111.0).name());
	
	printf("\n------实验A3------\n");
	printf("sqrt(-10) = %f\n", sqrt(-10));
	
	printf("\n------实验A4------\n");
	printf("1.0/0.0 = %f\n", 1.0/0.0);
	
	printf("\n------实验A5------\n");
	printf("1/0 = %f\n", 1/0);
	
	return 0;
}

算法入门记录(一)语言篇——1.5注解与习题_第1张图片


在C语言中,整型常量默认的类型是int,浮点型常量默认的类型是double。在程序中我通过typeid(常量/变量).name()将数据类型输出了出来,i代表int,d代表double。然后关于数据的溢出也在其中显示了出来。
最后,如果进行整除/的时候,分母为整数0,那么程序无法输出相应的结果,但是如果分母是0.0,虽然也会输出结果,但必然是错误的。

2.输入输出实验
实验B1:在同一行中输入12和2,并以空格分隔,是否得到了预期的结果?
实验B2:在不同的两行中输入12和2,是否得到了预期的结果?
实验B3:在实验B1和B2中,在12和2的前面和后面加入大量的空格或者水平制表符(TAB),甚至插入一些空行。
实验B4:把2换成字符s,重复实验B1~B3。

#include

int main()
{
	int a, b;
	char s;
	printf("------实验B1------\n");
	scanf("%d%d", &a, &b);
	printf("%d %d\n", a, b);
	
	printf("------实验B2------\n");
	scanf("%d%d", &a, &b);
	printf("%d %d\n", a, b);
	
	printf("------实验B3------\n");
	scanf("%d%d", &a, &b);
	printf("%d %d\n", a, b);
	
	printf("------实验B4.1------\n");
	scanf("%d %c", &a, &s);				//由于换成读入字符,因此输入中一定注意加没加空格 
	printf("%d %c\n", a, s);			//空格也会被当为一个字符读入的!!! 
	
	printf("------实验B4.2------\n");
	scanf("%d %c", &a, &s);
	printf("%d %c\n", a, s);
	
	printf("------实验B4.3------\n");
	scanf("%d %c", &a, &s);
	printf("%d %c\n", a, s);
	
	return 0;
} 

算法入门记录(一)语言篇——1.5注解与习题_第2张图片

关于输出 ‘’+'n’和 ‘%’+‘d’:

#include

int main()
{
	printf("\n");		//直接输出\n,转义为换行 
	printf("\\n"); 		//通过\\来表示这是输出一个'\'
	
	printf("\n========\n");
	
	printf("%d", 1);	//这是输出一个整型数据
	
	printf("\n========\n");
	
	printf("%%d"); 
	
	return 0;
} 

算法入门记录(一)语言篇——1.5注解与习题_第3张图片

习题1-1 平均数

输入3个整数,输出它们的平均值,保留3位小数。

#include

int main()
{
	int a, b, c;
	scanf("%d%d%d", &a, &b, &c);
	printf("%d,%d,%d的平均数是:%.3f\n",a, b, c, (a + b + c) / 3.0 );
	return 0;
} 

算法入门记录(一)语言篇——1.5注解与习题_第4张图片

习题1-2 温度

输入华氏温度f,输出对应的摄氏温度c,保留3位小数。提示:c=5(f-32)/9。

#include

int main()
{
	double f, c;
	scanf("%lf", &f);
	printf("%.3lf\n", 5 * (f - 32) / 9);
	return 0;
} 

算法入门记录(一)语言篇——1.5注解与习题_第5张图片

习题1-3 连续和

输入正整数n,输出1+2+···+n的值。提示:目标是解决问题,而不是练习编程。

#include

int main()
{
	int n;
	scanf("%d", &n);
	printf("%d\n", n * (n + 1) / 2);
	return 0;
} 

算法入门记录(一)语言篇——1.5注解与习题_第6张图片

习题1-4 正弦和余弦(sin和cos)

输入正整数n(n<360),输出n度的正弦、余弦函数值。提示:使用数学函数。

#include
#include	//使用数学函数需包含的头文件 

int main()
{
	int n;
	scanf("%d", &n);
	printf("%f\t%f\n", sin(n), cos(n));		//函数默认的形参是double类型
											//这里编译器自动进行了类型转换 
	return 0;
} 

算法入门记录(一)语言篇——1.5注解与习题_第7张图片

习题1-5 打折

一件衣服95元,若消费满300元,可打八五折。输入购买衣服件数,输出需要支付的金额(单位:元),保留两位小数。

#include

int main()
{
	int n;
	scanf("%d", &n);
	if(n < 0)
		printf("Error n !\n");
	else if(95 * n >= 300)
		printf("%.2lf\n", 0.85 * n * 95);
	else
		printf("%.2lf\n", 95.0 * n);	//注意别用95 * n 
	return 0;
} 

算法入门记录(一)语言篇——1.5注解与习题_第8张图片
算法入门记录(一)语言篇——1.5注解与习题_第9张图片
算法入门记录(一)语言篇——1.5注解与习题_第10张图片

习题1-6 三角形

输入三角形3条边的长度值(均为正整数),判断是否能为直角三角形的3个边长。如果可以,则输出yes,如果不能,则输出no。如果根本无法构成三角形,则输出not a triangle。

#include

int main()
{
	int a, b, c;
	scanf("%d%d%d", &a, &b, &c);
	if(a+b > c && a+c > b && b+c > a)
		if(a*a + b*b == c*c || b*b + c*c == a*a || a*a + c*c == b*b)
			printf("yes\n");
		else
			printf("no\n");
	else
		printf("not a triangle\n");
	return 0;
} 

算法入门记录(一)语言篇——1.5注解与习题_第11张图片
算法入门记录(一)语言篇——1.5注解与习题_第12张图片
算法入门记录(一)语言篇——1.5注解与习题_第13张图片

习题1-7 年份

输入年份,判断是否为闰年。如果是,则输出yes,否则输出no。(简单地判断除以4的余数是不够的)
闰年的判定方法:
1.能被4整除而不能被100整除
2.能被100整除也能被400整除

#include

int main()
{
	int year;
	scanf("%d", &year);
	if( (year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0))
		printf("yes\n");
	else
		printf("no\n");
	return 0;
} 

算法入门记录(一)语言篇——1.5注解与习题_第14张图片
算法入门记录(一)语言篇——1.5注解与习题_第15张图片
算法入门记录(一)语言篇——1.5注解与习题_第16张图片

你可能感兴趣的:(C++,C语言,算法)