C Primer Plus 编程练习(一)
第三章,问题2、5、7、8
直接上代码了,有一部分是从Jimmy Chen 的blog上学的。
要是有什么问题,特别希望能赐教哦,
代码见下面:
#include <stdio.h>
#define InchPerCen 2.54 //一英寸相当于2.54厘米
#define SecondPerYear 3.156e7 //学习命名规范:秒和年的换算
#define PintPerCup 2
#define CupPerOunce 8
#define OuncePerBigSpoon 2
#define BigSpoonPerTeaSpoon 3 //Every BigSpoon equals to three TeaSpoon
void p3_2(void)
{
int ASCII = 0;
printf("Please enter an ASCII Number:");
scanf("%d",&ASCII); //最近有的时候会忘了改变变量地址上的值从而一直使用变量初值
printf("%d\n",ASCII);
//printf("%d\n",(char)ASCII); //第一遍写的bug,下意识的一直用%d
printf("%c\n",(char)ASCII); //Convert to character directly
return;
}
void p3_5(void) //学习模块化的编程方法,利用在主函数外声明函数,在主函数中调用
{
int age = 0,SecondsNumAge = 0;
printf("Please Enter your age:");
scanf("%d",&age);
SecondsNumAge = age*SecondPerYear;
printf("%d\n",SecondsNumAge);
return;
}
void p3_7(void)
{
float HeightCen = 0,HeightInch = 0;
printf("Please Enter your height in inch:");
scanf("%f",&HeightInch);
HeightCen = HeightInch*InchPerCen;
printf("%f\n",HeightCen);
return;
}
void p3_8(void)
{
int CupNum = 0;
float Pint = 0,Ounce = 0, BigSpoon = 0, TeaSpoon = 0;
printf("Please Enter the Number of Cups:");
scanf("%d",&CupNum);
Pint = CupNum/PintPerCup;
Ounce = CupNum*CupPerOunce;
BigSpoon = Ounce*OuncePerBigSpoon;
TeaSpoon = BigSpoon*BigSpoonPerTeaSpoon;
printf("%f %f %f %f\n",Pint,Ounce,BigSpoon,TeaSpoon );
return;
}
int main()
{
p3_2();
getchar();
return 0;
}
第四章(部分)
#include <stdio.h>
#include <string.h>
#include <float.h>
#define Gallon 3.785
#define Mile 1.609
void p4_1(void)
{
char first_name[40];
char last_name[40];
printf("What's your first name:");
scanf("%s", first_name);
printf("What's your last name:");
scanf("%s", last_name);
getchar();
printf("%*s,%*s\n", 10, first_name, 10, last_name); //修饰了*的抑制用法
return;
}
void p4_2(void)
{
char first_name[40];
char last_name[40];
int first_name_length = 0;
int last_name_lenght = 0;
printf("What's your first name:");
scanf("%s", first_name);
printf("What's your last name:");
scanf("%s", last_name);
getchar();
first_name_length = strlen(first_name);
last_name_lenght = strlen(last_name);
printf("\"%s,%s\"\n", first_name, last_name);
printf("\"%20s,%20s\"\n", first_name, last_name);
printf("\"%-20s,%-20s\"\n", first_name, last_name);
printf("%*s,%*s\n", first_name_length+3, first_name, last_name_lenght+3, last_name);
return;
}
void p4_6(void)
{
char first_name[40] = { 0 };
char last_name[40] = { 0 };
int first_name_length = 0;
int last_name_length = 0;
printf("What's your first name:");
scanf("%s", first_name);
getchar();
printf("What's your last name:");
scanf("%s", last_name);
getchar();
first_name_length = strlen(first_name);
last_name_length = strlen(last_name);
printf("%s %s\n", first_name, last_name);
printf("%*d %*d\n", first_name_length, first_name_length, last_name_length, last_name_length);
printf("%s %s\n", first_name, last_name);
printf("%-*d %-*d\n", first_name_length, first_name_length, last_name_length, last_name_length);
}
void p4_7(void)
{
double d_value = 1.0 / 3.0;
float f_value = 1.0 / 3.0;
printf("the value of FLT_DIG:%d, the value of DBL_DIG:%d\n", FLT_DIG, DBL_DIG);
printf("the value of double:%.6f, the value of float:%.6f\n", d_value, f_value);
printf("the value of double:%.12Ld, the value of float:%.12Lf\n", d_value, f_value); //注意double要用Ld
printf("the value of double:%.16Ld, the value of float:%.16Lf\n", d_value, f_value);
}
int main()
{
p4_7();
return 0;
}
第五章(部分)
#include <stdio.h>
const int M = 60;
void c5_1(void)
{
float value;
printf("Enter value:");
scanf("%f",&value);
while (value > 0)
//第一遍写错了,写成了<=0
{
printf("Enter value:");
scanf("%f",&value);
}
return;
}
void c5_2(void)
{
int n,Value_print;
printf("Please enter an integer:");
scanf("%d",&n);
Value_print = n;
while (Value_print <= n+10)
{
printf("%d\n",Value_print);
Value_print += 1;
}
return;
}
void c5_3(void)
{
int day;
printf("Please enter the number of day:");
scanf("%d",&day);
while (day >= 0)
{
int a,b;
a = day/7;
b = day%7;
printf("%d days are %d weeks, %d days\n",day, a, b);
printf("Please enter the number of day:");
//对于问题三这种的循环问题,再循环体内,将初始条件再写一遍
scanf("%d",&day);
}
return;
}
void c5_5(void)
{
return;
}
int main()
{
c5_3();
return 0;
}