C Primer Plus 第五章 编程练习

第五章(编程练习)

5.1

/************************************************************************/
/***题    目:编写一个程序,把用分钟的时间转换用小时和分钟表示的时间。***/
/***          使用#define或者const创建一个表示60的符号常量或const变量 ***/
/***          通过while循环让用户重复输入值,直到用户输入小于或者等于0***/
/***          的值才停止循环。                                        ***/
/***完成时间:2020.2.2                                                ***/
/***作    者:林夕                                                    ***/
/************************************************************************/
#include<stdio.h>
#define VALUE 60
int main(void)
{
	int minute = 0,time = 0,hour=0;
	//minute-分 time-输入的值 hour-时

	printf("请输入需要转化分钟的时间(直到输入小于0的数字停止):\n");
	scanf_s("%d", &time,1);
	while (time > 0)
	{
		hour = time / VALUE;
		minute = time % VALUE;
		printf("%d的分钟可以转化为%d小时%d分钟\n", time, hour, minute);
		scanf_s("%d", &time, 1);
	}

	return 0;
}

运行结果在这里插入图片描述

5.2

/**************************************************************************/
/***题    目:编写一个程序,提示用户输入一个整数,然后打印从该数到比该数***/
/***          大10的所有整数(例如,用户输入5,则打印5-15的所有整数), ***/
/***          要求打印的各值直接用一个空格、制表符或换行符分开。        ***/
/***完成时间:2020.2.2                                                  ***/
/***作    者:林夕                                                      ***/
/**************************************************************************/
#include<stdio.h>
int main(void)
{
	int num = 0,number=0;

	printf("请输入一个整数:\n");
	scanf_s("%d", &num);
	number = num + 10;
	while (num <= number)
	{
		printf("%d ", num++);
	}

	return 0;
}

运行结果
在这里插入图片描述

5.3

/**************************************************************************/
/***题    目:编写一个程序,提示用户输入天数,然后将其转换成周天和天数。***/
/***          例如,用户输入18,则转换为2周4天,以下面的格式显示结果:  ***/
/***          18 days are 2 weeks, 4 days                                ***/
/***完成时间:202.2.2                                                   ***/
/***作者:林夕                                                          ***/
/**************************************************************************/
#include<stdio.h>
#define VALVE 7
int main(void)
{
	int number = 0, day = 0, week = 0;

	printf("请输入天数:\n");
	scanf_s("%d", &number);
	week = number / VALVE;
	day = number % VALVE;
	printf("%d days are %d weeks, %d days\n",number,week,day);

	return 0;
}

运行结果
在这里插入图片描述

5.4

/******************************************************************************/
/***题    目:编写一个程序,提示用户输入一个身高(单位:厘米),并分别以厘米***/
/***          和英寸为单位显示该值,允许有小数部分。程序应该能够让用户重复输***/
/***          入身高,直到用户输入一个非正数,其输出示例如下:              ***/
/***          Enter a height in centers:182                                 ***/
/***          182.0cm = 5 feet, 11.7 inches                                 ***/
/***          Enter a height in centimers (<=0 to quit): 168.7              ***/
/***          168.7cm = 5 feet, 6.4 inches                                  ***/
/***          Enter a height in centimers (<=0 to quit): 0                  ***/
/***          bye                                                           ***/
/***完成时间:2020.2.2                                                      ***/
/***作    者:林夕                                                          ***/
/******************************************************************************/
#include<stdio.h>
#define VALUE1 30.48
#define VALUE2 2.54
int main(void)
{
	float height = 0.0,  inches = 0.0;
	int  feet = 0;

	printf("Enter a height in centers:");
	scanf_s("%f", &height);
	while (height > 0)
	{
		feet = height / VALUE1;
		inches = (height- feet*VALUE1)/VALUE2;
		printf("%.1fcm = %d feet, %.1f inches \n",height,feet,inches);
		printf("Enter a height in centimers (<=0 to quit):");
		scanf_s("%f", &height);
	}
	printf("bye");

	return 0;
}

运行结果
在这里插入图片描述

5.5

/**************************************************************************/
/***题    目:修改程序5.13,你可以认为那个程序时计算20天里赚多少钱的程序***/
/***          (假设第一天赚51、第二天赚52、第三天赚53,以此类推)。修改***/
/***          程序,使其可以与用户交互,根据用户输入的数进行计算(即,用***/
/***          读入的一个变量来代替20)。                                ***/
/***完成时间:2020.2.2                                                  ***/
/***作    者:林夕                                                      ***/
/**************************************************************************/
#include<stdio.h>
int main(void)
{
	int count, sum, number;

	count = 0;
	sum = 0;
	number = 0;
	printf("请输入初始数字:\n");
	scanf_s("%d", &number);
	while (count++<number)
	{
		sum = sum + count;
	}
	printf("sum=%d\n", sum);

	return 0;
}

运行结果
在这里插入图片描述

5.6

/******************************************************************************/
/***题    目:修改程序练习5的程序,使其能计算整数的平方和(可以认为第一天$1,***/
/***          第二天$4,第三天$9,依次类推,这看起来很不错)。C没有平方函数, ***/
/***          但是可以用n*n来表示n的平方。                                  ***/
/***完成时间:2020.2.2                                                      ***/
/***作    者:林夕                                                          ***/
/******************************************************************************/
#include<stdio.h>
int main(void)
{
	int count, sum, number;

	count = 0;
	sum = 0;
	number = 0;
	printf("请输入天数:\n");
	scanf_s("%d", &number);
	while (count++ < number)
	{
		sum = sum + count*count;
	}
	printf("sum=%d\n", sum);

	return 0;
}

运行结果
在这里插入图片描述

5.7

/**************************************************************************/
/***题    目:编写一个程序,提示用户输入一个double类型的数,并打印该数的***/
/***          立方值。自己设计一个函数计算并打印立方值。main()函数要把用***/
/***          户输入的值传递给该函数。                                  ***/
/***完成时间:2020.2.2                                                  ***/
/***作    者:林夕                                                      ***/
/**************************************************************************/
#include<stdio.h>
#include<math.h>
double IC(void);
int main(void)
{
	double  num = 0.0;
	printf("请输入一个double类型的数:\n");
	num = pow(IC(), 3);
	printf("立方为%lf", num);

	return 0;
}

double IC(void)
{
	double number = 0.0;
	scanf_s("%lf", &number);

	return number;
}

运行结果
在这里插入图片描述

5.8

/******************************************************************************/
/***题    目:编写一个程序,显示求模运算符的结果。把用户输入的第一个整数作为***/
/***          求模运算符的第二个运算对象,该数在运算过程中保持不变,用户后面***/
/***          输入的数是第一个运算对象。当用户输入一个非正数时,程序结束。其***/
/***          输出示例如下:                                                ***/
/***          This program computes modulo.                                 ***/
/***          Enter an integer to serve as the second opeand:256            ***/
/***          Now enter the first operand: 438                              ***/
/***          438 % 256 is 182                                              ***/
/***          Enter next number for first operand (<= 0 to quit):1234567    ***/
/***          1234567 % 256 is 135                                          ***/
/***          Enter next number for first operand (<= 0 to quit):0          ***/
/***          Done                                                          ***/
/***完成时间:2020.2.2                                                      ***/
/***作    者:林夕                                                          ***/
/******************************************************************************/
#include<stdio.h>
int main(void)
{
	int number1 = 0, number2 = 0;

	printf("This program computes modulo.\n");
	printf("Enter an integer to serve as the second opeand:");
	scanf_s("%d", &number2);
	printf(" Now enter the first operand: ");
	scanf_s("%d", &number1);
	while (number1 > 0)
	{
		printf("%d %% %d is %d\n", number1, number2,( number1 % number2));
		//打印%要用%%
		printf("Enter next number for first operand (<= 0 to quit):");
		scanf_s("%d", &number1);
	}
	printf("Done\n");

	return 0;
}

运行结果
在这里插入图片描述

5.9

/****************************************************************************/
/***题    目:编写一个程序,要求用户输入一个华氏温度。程序应读取double类型***/
/***          的值作为温度值,并把该值作为参数传递给一个用户自定义的函数  ***/
/***          Temperatures()。该函数计算摄氏温度和开氏温度,并以小数点后俩***/
/***          位数字的精度显示3种温度。要使用不同的温标来表示这3个温度值。***/
/***          下面是华氏温度转摄氏温度的公式:                            ***/
/***          摄氏温度 = 5.0/9.0*(华氏温度 - 32.0)                      ***/
/***          开氏温标常用于科学研究,0表示绝对零,代表最低温度。下面是摄 ***/
/***          氏温度转开氏温度的公式:                                    ***/
/***          开氏温度 = 摄氏温度 + 273.16                                ***/
/***          Temperatures()函数中用const创建温度转换中使用的变量。在main()***/
/***          函数中使用一个循环让用户重复输入温度,当用户输入q或其他非数字***/
/***          时,循环结束。scanf()函数返回读入数据的数量,所以如果读取数字***/
/***          返回1,如果读取q则不返回1.可以使用==运算符将scanf()的返回值和***/
/***          1作比较,测试俩值是否相等。                                  ***/
/***完成时间:2020.2.2                                                     ***/
/***作    者:林夕                                                         ***/
/*****************************************************************************/
#include<stdio.h>
void Temperatures(double n);
int main(void)
{
	double degree_Fahrenheit = 0.0;
	printf("请输入一个华氏温度:\n");
	while (scanf_s("%lf", &degree_Fahrenheit)==1)
	{
		Temperatures(degree_Fahrenheit);
		printf("请输入一个华氏温度:\n");
	}
	printf("程序结束\n");
	return 0;
}

void Temperatures(double n)
{
	double centigrade_degree = 0.0, degree_kelvin = 0.0;
	const double num1 = 273.16, num2 = 32.0;

	centigrade_degree = 5.0 / 9.0 * (n - num2);
	degree_kelvin = n + num1;
	printf("华氏温度:%.2lf\n",n);
	printf("摄氏温度:%.2lf\n",centigrade_degree); 
	printf("开氏温度:%.2lf\n",degree_kelvin);
}

运行结果
在这里插入图片描述

以上均为小编写,有错误之处请留言下方;
武汉加油!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

林夕07

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值