《C Primer Plus》第六版第四章课后题

/* 4-1 */
int main(void)
{
    char firstname[40];
    char lastname[40];

    printf("Usage : Firstname lastname\n");
    printf("Please enter your name:");
    scanf("%s %s", firstname, lastname);

    //printf("Please enter your last name:");
    //scanf("%s", lastname);

    printf("%s,%s\n", lastname, firstname);

    return 0;
}

/* 4-2 */
int main(void)
{
    char first_name[40];
    char last_name[40];
    int first_name_length;
    int last_name_length;

    printf("Please enter your first name:");
    scanf("%s", first_name);
    printf("Please enter your last name:");
    scanf("%s", last_name);

    first_name_length = strlen(first_name);
    last_name_length = strlen(last_name);

    printf("a.\"%s,%s\"\n", last_name, first_name);

    printf("b.\"%20s,%20s\"\n", last_name, first_name);

    printf("c.\"%-20s,%-20s\"\n", last_name, first_name);

    printf("d.\"%*s,%*s\"\n", last_name_length + 3, last_name, first_name_length + 3, first_name);

    return 0;
}

/* 4-3 */
int main(void)
{
    float num;

    printf("Please enter a float number:");
    scanf("%f", &num);

    printf("a.输入%.1f或%e;\n", num, num);

    printf("Please enter another float number:");
    scanf("%f", &num);

    printf("b.输入+%.3f或%e;\n", num, num);

    return 0;
}

/* 4-4 */
int main(void)
{
    char firstname[40];
    char lastname[40];
    float height;

    printf("Pleass enter your name:<firstname lastname>");
    scanf("%s %s", firstname, lastname);

    printf("Please enter your height:      (cm)\b\b\b\b\b\b\b\b\b\b");
    scanf("%f", &height);

    printf("%s %s, you are %.2f(m) tall.\n", firstname, lastname, height / 100);

    return 0;
}

/* 4-5 */
int main(void)
{
    float speed;
    float byte;
    float seconds;

    printf("Please enter the download speed:     (Mb/s)\b\b\b\b\b\b\b\b\b\b\b");
    scanf("%f", &speed);

    printf("Please enter the file size:     (MB)\b\b\b\b\b\b\b\b\b");
    scanf("%f", &byte);

    seconds = (byte * 8) / speed;  

    printf("At %.2f megabits per seconds, a file of %.2f megabytes\n", speed, byte);
    printf("download in %.2f seconds.\n", seconds);

    return 0;
}

/* 4-6 */
int main(void)
{
    char last_name[40];
    char first_name[40];
    int firstname_length;
    int lastname_length;

    printf("Please enter your last name:");
    scanf("%s", last_name);

    printf("Please enter your first name:");
    scanf("%s", first_name);

    firstname_length = strlen(first_name);
    lastname_length = strlen(last_name);

    printf("%s %s\n", last_name, first_name);
    printf("%*d %*d\n", lastname_length, lastname_length, firstname_length, firstname_length);

    printf("%s %s\n", last_name, first_name);
    printf("%-*d %-*d\n", lastname_length, lastname_length, firstname_length, firstname_length);

    return 0;
}

/* 4-7 */
int main(void)
{
    double value1 = 1.0 / 3.0;
    float value2 = 1.0/3.0;

    printf("double variable: %.6f,float variable: %.6f\n", value1, value2);
    printf("double variable: %.12f,float variable: %.12f\n", value1, value2);
    printf("double variable: %.16f,float variable: %.16f\n", value1, value2);
    printf("FLT_DIG: %d, DBL_DIG: %d", FLT_DIG, DBL_DIG);  

    return 0;
}

/* 4-8 */
#define LITRE_PER_GALLON (3.785)
#define KILOMETER_PER_MILE (1.609)

int main(void)
{
    /* 输入旅行的里程和消耗的汽油量 */
    float mile_distance;
    float gas_consumption;
    float kilometer_dist;
    float litre_consump;

    printf("How long have been travelled:");
    scanf("%f", &mile_distance);
    printf("How much gas have been used:");
    scanf("%f", &gas_consumption);

    litre_consump = gas_consumption * LITRE_PER_GALLON;
    kilometer_dist = mile_distance * KILOMETER_PER_MILE;

    printf("You can drive %.1f mile by using one gallon gas.\n", mile_distance / gas_consumption);      /* 消耗单位燃料的行程 */
    printf("You drive one kilometer will use %.1f litre gas.\n", litre_consump / kilometer_dist);       /* 单位距离消耗的燃料 */

    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_41354745/article/details/82630884