C Primer Plus 第六版(中文版)第六章(完美修订版)编程练习答案

//本博主所写的代码仅为阅读者提供参考;

//若有不足之处请提出,博主会尽所能修改;

//附上课后编程练习题目;

//若是对您有用的话请点赞或分享提供给它人;




//6.16 - 1.c

#include <stdio.h>
#define LEN 26

int main(void)
{
    
    
    int n;
    char letters[LEN];

    for (n = 0; n < LEN; n++)
    {
    
    
        letters[n] = 'a' + n;
    }
    printf("Here are %d letters:\n", LEN);
    for (n = 0; n < LEN; n++)
    {
    
    
        printf("%-3c", letters[n]);
    }

    return 0;
}

//-------------

//6.16 - 2.c

#include <stdio.h>
#define N 5

int main(void)
{
    
    
    int i, j;

    for (i = 1; i <= N; i++)
    {
    
    
        for (j = 1; j <= i; j++)
        {
    
    
            printf("$");
        }
        printf("\n");
    }

    return 0;
}

//-------------

//6.16 - 3.c

#include <stdio.h>
#define N 6

int main(void)
{
    
    
    int i, j;

    for (i = 1; i <= N; i++)
    {
    
    
        for (j = 0; j < i; j++)
        {
    
    
            printf("%c", 'F' - j);
        }
        printf("\n");
    }

    return 0;
}

//-------------

//6.16 - 4.c

#include <stdio.h>
#define N 6

int main(void)
{
    
    
    int i, j;
    char ch = 'A';

    for (i = 1; i <= N; i++)
    {
    
    
        for (j = 1; j <= i; j++)
        {
    
    
            printf("%c", ch++);
        }
        printf("\n");
    }

    return 0;
}

//-------------

//6.16 - 5.c

#include <stdio.h>

int main(void)
{
    
    
    int i, j;
    char ch;

    printf("Please enter a upper letter: ");
    scanf("%c", &ch);

    int length = ch - 'A';
    //循环次数;
    printf("The pyramid of %c is:\n", ch);
    for (i = 0; i <= length; i++)
    {
    
    
        char t = 'A' - 1;
        for (j = 0; j < length - i; j++)
        {
    
    
            printf(" ");
        }
        //↑左侧空格数;
        for (j = 0; j <= i; j++)
        {
    
    
            printf("%c", ++t);
        }
        //↑打印递增字母;
        for (j = 0; j < i; j++)
        {
    
    
            printf("%c", --t);
        }
        //↑打印递减字母
        printf("\n");
    }

    return 0;
}

//-------------

//6.16 - 6.c

#include <stdio.h>

int main(void)
{
    
    
    int i, upper, lower;

    printf("Please input the upper limits: ");
    scanf("%d", &upper);
    printf("Please input the lower limits: ");
    scanf("%d", &lower);

    printf("%-10s%-10s%-10s\n", "number", "square", "cube");
    for (i = lower; i <= upper; i++)
    {
    
    
        printf("%-10d%-10d%-10d\n", i, i * i, i * i * i);
    }
    printf("Done.\n");

    return 0;
}

//-------------

//6.16 - 7.c

#include <stdio.h>
#include <string.h>
#define LEN 20

int main(void)
{
    
    
    int i;
    char str[LEN];

    printf("Please enter a word: ");
    scanf("%19s", str);
    printf("The word is:\n");
    printf("%s\n", str);

    printf("Reversing the word is:\n");
    for (i = strlen(str) - 1; i >= 0; i--)
    {
    
    
        printf("%c", str[i]);
    }

    return 0;
}

//-------------

//6.16 - 8.c

#include <stdio.h>

int main(void)
{
    
    
    double i, j;

    printf("Please enter two numbers (q to quit): ");
    while (scanf("%lf %lf", &i, &j) == 2)
    {
    
    
        printf("(%g - %g) / (%g * %g)", i, j, i, j);
        printf(" = %g\n", (i - j) / (i * j));
        printf("You can enter again (q to quit): ");
    }
    printf("Done.\n");

    return 0;
}

//-------------

//6.16 - 9.c

#include <stdio.h>

double cal(double n, double k);

int main(void)
{
    
    
    double i, j;

    printf("Please enter two numbers (q to quit): ");
    while (scanf("%lf %lf", &i, &j) == 2)
    {
    
    
        printf("(%g - %g) / (%g * %g)", i, j, i, j);
        printf(" = %g\n", cal(i, j));
        printf("You can enter again (q to quit): ");
    }
    printf("Done.\n");

    return 0;
}

double cal(double n, double k)
{
    
    
    return (n - k) / (n * k);
}

//-------------

//6.16 - 10.c

#include <stdio.h>

int main(void)
{
    
    
    int upp, low, i;

    printf("Enter lower and upper integer limits: ");
    while ((scanf("%d %d", &low, &upp) == 2) && (upp > low))
    {
    
    
        int sum = 0;
        for (i = low; i <= upp; i++)
        {
    
    
            sum += i * i;
        }
        printf("The sums of the squares ");
        printf("from %d to %d is %d\n", low * low, upp * upp, sum);
        printf("Enter next set of limits: ");
    }
    printf("Done\n");

    return 0;
}

//-------------

//6.16 - 11.c

#include <stdio.h>
#define N 8

int main(void)
{
    
    
    int i, a[N];

    printf("Please enter 8 numbers:\n", N);
    for (i = 0; i < N; i++)
    {
    
    
        scanf("%d", &a[i]);
    }
    printf("Reverse order printing 8 numbers:\n", N);
    for (i = N - 1; i >= 0; i--)
    {
    
    
        printf("%-3d", a[i]);
    }

    return 0;
}

//-------------

//6.16 - 12.c

#include <stdio.h>

int main(void)
{
    
    
    int i, n;

    printf("Please enter a number (<= 0 to quit): ");
    while ((scanf("%d", &n) == 1) && (n > 0))
    {
    
    
        double res1 = 0.0;
        double res2 = 0.0;
        for (i = 1; i <= n; i++)
        {
    
    
            res1 += 1.0 / i;
            if (i % 2 == 1)
            {
    
    
                res2 += 1.0 / i;
            }
            else
            {
    
    
                res2 -= 1.0 / i;
            }
        }
        printf("1.0 + 1.0/2.0 + 1.0/3.0 + 1.0/4.0 + ...");
        printf("sum are %g\n", n, res1);
        printf("1.0 - 1.0/2.0 + 1.0/3.0 - 1.0/4.0 + ...");
        printf("sum are %g\n", n, res2);
        printf("The sum of the first %d items of the two sequences is %g\n", n, res1 + res2);
        printf("\nYou can enter again (<= 0 to quit): ");
    }
    printf("Done.\n");

    return 0;
}

//-------------

//6.16 - 13.c

#include <stdio.h>
#define N 8

int main(void)
{
    
    
    int a[N], i;
    int val = 2;

    for (i = 0; i < N; i++)
    {
    
    
        a[i] = val;
        val *= 2;
    }
    i = 0;
    printf("Here are the results for array:\n", N);
    do
    {
    
    
        printf("%d ", a[i++]);
    } while (i < N);
    printf("\nDone.\n");

    return 0;
}

//-------------

//6.16 - 14.c

#include <stdio.h>
#define N 8

int main(void)
{
    
    
    int i;
    double a[N], b[N];

    printf("Please enter %d numbers:\n", N);
    for (i = 0; i < N; i++)
    {
    
    
        scanf("%lf", &a[i]);
    }
    b[0] = a[0];
    for (i = 1; i < N; i++)
    {
    
    
        b[i] = a[i] + b[i - 1];
    }
    printf("Here are the results for array a:\n");
    for (i = 0; i < N; i++)
    {
    
    
        printf("%-3g", a[i]);
    }
    printf("\nHere are the results for array b:\n");
    for (i = 0; i < N; i++)
    {
    
    
        printf("%-3g", b[i]);
    }
    printf("\nDone.\n");

    return 0;
}

//-------------

//6.16 - 15.c

#include <stdio.h>
#define LEN 255

int main(void)
{
    
    
    int i = 0;
    char input[LEN];

    printf("Please enter a string:\n");
    do
    {
    
    
        scanf("%c", &input[i]);
    } while (input[i] != '\n' && ++i && i < LEN);

    printf("Reversing print the string is:\n");
    for (i--; i >= 0; i--)
    {
    
    
        //↑避免打印换行符;
        printf("%c", input[i]);
    }
    printf("\nDone.\n");

    return 0;
}

//-------------

//6.16 - 16.c

#include <stdio.h>
#define RATE_SIMP 0.10
#define RATE_COMP 0.05
#define INIT_AMT 100.0

int main(void)
{
    
    
    int years = 0;
    double daphne = INIT_AMT;
    double deirdre = INIT_AMT;

    do
    {
    
    
        daphne += RATE_SIMP * INIT_AMT;
        deirdre += RATE_COMP * deirdre;
        years++;
    } while (deirdre < daphne);
    printf("Investment values after %d years:\n", years);
    printf("Daphne: $%.2f\n", daphne);
    printf("Deirdre: $%.2f\n", deirdre);
    printf("Deirdre(invest) > Daphne(invest)\n");

    return 0;
}

//-------------

//6.16 - 17.c

#include <stdio.h>
#define TAX 0.08

int main(void)
{
    
    
    int i = 0;
    double Chuckie = 100.0;

    do
    {
    
    
        i++;
        Chuckie += Chuckie * TAX;
        Chuckie -= 10;
        printf("(%d)account:%g.\n", i, Chuckie);
    } while (Chuckie > 9);
    //↑若余额低于9则不够下一年支取;
    printf("After %d years:\n", ++i);
    printf("Chuckie has taken all of the money!\n");

    return 0;
}

//-------------

//6.16 - 18.c

#include <stdio.h>

int main(void)
{
    
    
    int i = 1;
    int friends = 5;

    while (friends < 150)
    {
    
    
        printf("At %d weeks, Rabnud has", i);
        printf("%4d friends.\n", friends);
        friends = 2 * (friends - i++);
    }
    printf("At %d weeks, over Dunbar's number(150).\n", i);

    return 0;
}

//-------------

//----------------------------2020年4月3日 -------------------------------

猜你喜欢

转载自blog.csdn.net/m0_46181359/article/details/105302180