记录一下学习过程:D
5.11.1
#include <stdio.h>
const int MINS = 60;
int main()
{
int mins;//用户输入的分钟值
int left_mins, hour;//剩余的分钟、小时
_Bool status;
printf("请输入分钟:");
status = scanf_s("%d", &mins) == 1; //利用scanf的特性,若成功读取mins的值,则返回1给status
while (status)
{
hour = mins / MINS;//求小时
left_mins = mins % MINS;//求剩余分钟
printf("输入的分钟为:%d,换算过来是%d小时%d分钟(若想继续转换,请输入数字;若退出请输入非数字)\n", mins, hour, left_mins);
status = scanf_s("%d", &mins) == 1; //同上,非数字则退出循环,进入下一语句
}
printf("see you next time!");
return 0;
}
5.11.2
#include <stdio.h>
int main()
{
int nums, bignum;//读取的数字和比其大10的数字
printf("pls entry a number:");
scanf_s("%d", &nums);
bignum = nums + 10;
while (nums <= bignum) //小于等于bignum前,都进行循环
{
printf("%d\n", nums++);//控制格式,打印nums
}
return 0;
}
5.11.3
#include <stdio.h>
const int WEEKS = 7;
int main()
{
int day, week, left_days;
_Bool status;
printf("pls entry days:");
status = scanf_s("%d", &day) == 1;
while (status)
{
week = day / WEEKS;
left_days = day % WEEKS;
printf("%d days are %d weeks, %d days\n", day, week, left_days);
printf("pls entry next days(non nums to quit):");
status = scanf_s("%d", &day) == 1;
}
printf("enjoy it!\n");
return 0;
}
5.11.4
/*
1feet = 12inch or 30.48cm
1inch = 2.54cm
*/
#include <stdio.h>
#define PER_INCH 2.54
#define PER_FEET 30.48
int main()
{
float cm, inch;
int feet;
printf("enter a height in centimeters: ");
scanf("%f", &cm);
while(cm)
{
feet = cm / PER_FEET;
//此处利用了feet是整数类型,所以会截断cm/30.48后的小数点
inch = (cm - feet * PER_FEET) / PER_INCH;
//然后可以用CM直接减feet*30.48,而将剩余的数值*2.54
printf("%.1f cm = %d feet, %.1f inches\n", cm, feet, inch);
printf("enter a height in centimeters (<=0 to quit): ");
scanf("%f", &cm);
}
printf("bye\n");
return 0;
}
5.11.5
#include <stdio.h>
int main()
{
int count = 0;
int sum = 0;
int days;
printf("enter workdays: ");
scanf("%d", &days);
while(count++ < days)
{
sum = sum + count;
}
printf("you can earn $%d!\n", sum);
return 0;
}
5.11.6
#include <stdio.h>
int main()
{
int count = 0;
int sum = 0;
int days;
printf("enter workdays: ");
scanf("%d", &days);
while(count++ < days)
{
sum = sum + count * count ;
}
printf("you can earn $%d!\n", sum);
return 0;
}
5.11.7
#include <stdio.h>
void cube(double n);
int main()
{
double n = 0;
printf("pls enter a number, then program will calulate a cube\n");
cube(n);
return 0;
}
void cube(double n)
{
scanf_s("%lf", &n); //由于是double,所以用scnaf()读取用%lf转换
n = n * n * n;
printf("the number cube is:%.3f ", n);
//printf()没有%lf这一说,所以无论是double还float都是使用%f
}
5.11.8
#include <stdio.h>
//void mod_f (int n);
int main()
{
int num2, num1;
printf("this program computes moduli.\n");
printf("enter an integer to serve as the second operand: ");
scanf_s("%d\n", &num2);
printf("now enter the first operand: ");
scanf_s("%d", &num1);
while(num1)
{
printf("%d %% %d is %d\n", num1, num2, num1%num2);
printf("enter next number for first operand(<= 0 to quit): ");
scanf_s("%d\n", &num1);
}
printf("done\n");
return 0;
}
5.11.9
#include <stdio.h>
void Temperatures(double f); //k是Kelvins 开氏度
int main()
{
double f;
printf("输入华氏度:");
while (scanf_s("%lf", &f) == 1)
{
Temperatures(f);
printf("请继续输入(q to quit):");
}
printf("done!\n");
return 0;
}
void Temperatures(double f1)
{
const double ktemp = 273.16;
double k, c;
c = 5.0 / 9.0 * (f1 - 32);
k = c + ktemp;
printf("1.华氏度 = %.2f\n", f1);
printf("2.摄氏度 = %.2f\n", c);
printf("3.开氏度 = %.2f\n", k);
}