C primer Plus 编程练习(一)

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;
}

猜你喜欢

转载自blog.csdn.net/wfy_1999/article/details/82891954