C Primer Plus学习 第五章编程练习

/*test5-1.c
1.编写一个程序。
将用分钟表示的时间转换成以小时和分钟表示的时间。
使用#define或者const来创建一个代表60的符号常量。
使用while循环来允许用户重复键入值,并且当键入一个小于等于0的时间时终止循环。*/
#include <stdio.h>
#define M_PRE_H 60
int main(void)
{
	int min, hour;
	
	printf("Please enter minutes you want(min > 0):");
	scanf("%d", &min);
	printf("\n");
	
	while( min > 0){
		hour = min / M_PRE_H;
		min = min % M_PRE_H;
	
		printf("The time is %d:%d\n", hour, min);		
	}

	return 0;
}

运行结果为:

Please enter minutes you want(min > 0):666
The time is 11 h6 min

/*test5-2.c 
2.编写一个程序,此程序要求输入一整数,
然后打印出从(包括)输入的值到(包括)比输入的值大10的所有整数值(也就是说,如果输入为5,那么输出就从5到15)。
要求在各个输出值之间用空格、制表符或换行符分开。*/
#include <stdio.h>
int main (void)
{
	int i = 1;
	int num ;
	
	printf("请输入一个整数:");
	scanf("%d",&i);
	printf("%d",num);
	while(i++ < 10){
		++num;
		printf("%5d",num);
	}
	return 0; 
}

运行结果为:

请输入一个整数:9
9   10   11   12   13   14   15   16   17   18   19

/*tset5-3.c
3.编写一个程序,该程序要求用户输入天数,然后将该值转换为周数和天数。
例如,此程序将把18天转换成2周4天。用下面的格式显示结果:
使用一个while循环让用户重复输入天数;
当用户输入一个非正数(如0或-20)时,程序将终止循环。*/
#include <stdio.h>
#define DAYS_PRE_WEEKS 7
int main (void)
{
	int days, weeks;
	printf("请输入天数:");
	scanf("%d",&days);
	
	while(days > 0){
		weeks = days / DAYS_PRE_WEEKS;
		days = days % DAYS_PRE_WEEKS;
		printf("你输入的是:%d周%d天\n", weeks, days);
		scanf("%d",&days);
	} 
	return 0;
 } 

运行结果为:

Please input the days:666
666 days are 95 weeks,1 days.
Please input the days:-666

                                                      (  这一行是空的!)                             

/* test5-4.c 
 4.编写一个程序让用户按厘米输入一个高度值,
然后,程序按照厘米和英尺英寸显示这个高度值。
允许厘米和英寸的值出现小数部分。
程序允许用户继续输入,直到用户输入一个非正的数值。
程序运行的示例如下面所示:
Enter a height in centimeters: 182
182.0 cm = 5 feet, 11.7 inches
Enter a height in centimeters(<=O to quit): 168
168.0 cm = 5 feet, 6.1 inches
Enter a height in centimeters(<=O to quit): 0
bye
*/ 
#include <stdio.h>
#define C_PRE_F 30.48
#define C_PRE_I 2.54
int main(void)
{
	float cm,  inchs;
	int feet;
	
	printf("按厘米输入一个高度值:");
	scanf("%f",&cm);
	
	while(cm >= 0){ 
		feet = (int)cm / C_PRE_F ;
		inchs = (cm - feet * C_PRE_F) / C_PRE_I ;
		printf("%fcm = %d feet,%.1f inchs\n", cm, feet, inchs);
		printf("按厘米输入一个高度值(大于等于0):");
		scanf("%f",&cm);		
	}
	printf("bey");
	
	return 0;
}

运行结果为:

按厘米输入一个高度值:666
666.000000cm = 21 feet,10.2 inchs
按厘米输入一个高度值(大于等于0):-666
bey

/*test5-5
5.改写用来找到前20个整数之和的程序addemup.c(程序清单5.13)
(如果您愿意,可以把addemup.c程序看成是一个计算如果您第一天得到$1,
第二天得到$2,第三天得到$3,以此类推,您在20天里会挣多少钱的程序)。
修改该程序,目的是您能准确地告诉程序计算将进行到哪里。
也就是说,用一个读入的变量来代替20。 */
#include <stdio.h>
int main(void)
{
	int count, sum, t;
	
	count = 0;
	sum = 0;
	printf("请输入工作天数:"); 
	scanf("%d",&t);
	
	while (count++ < t)
		sum = sum + count;
	printf("你将得到$%d\n", sum);
	
	return 0;	
 } 

运行结果为:

请输入工作天数:99

你将得到$4950

/*test5-6.c 
6.现在修改编程练习5中的程序,使它能够计算整数平方的和(
如果您喜欢,可以这样认为:如果您第一天得到$l,第二天得到$4,第三天得到$9,
以此类推您将得到多少钱。这看起来像一个很好的买卖)。
C没有平方函数,但是您可以利用n的平方是n*n的事实。 */
#include <stdio.h>
int main(void)
{
	int count, sum, t;
	
	count = 0;
	sum = 0;
	printf("请输入工作天数:"); 
	scanf("%d",&t);
	
	while (count++ < t)
		sum = sum + count * count;
	printf("你将得到$%d\n", sum);
	
	return 0;	
 } 

运行结果为:

请输入工作天数:20
你将得到$2870

/* test5-7.c
7.编写一个程序,该程序要求输入一个float型数并打印该数的立方值。
使用您自己设计的函数来计算该值的立方并且将它的立方打印出来。
main()程序把输入的值传递给该函数。*/
#include<stdio.h>
float cube(float);

int main(void)
{
 float number;
 printf("Please input the number:");
 scanf("%f",&number);
 printf("The cube of %f is %f\n",number,cube(number));
 return(0);
}

float cube(float num)
{
 return(num * num * num);
}

运行结果为:

Please input the number:6.66
The cube of 6.660000 is 295.408264


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值