/*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