zoukankan      html  css  js  c++  java
  • Chapter 6 :C Control Statements

    1. Write a program that creates an array with 26 elements and stores the 26 lowercase letters in it. Also have it show the array contents.

    /* this implementation assumes the character codes */
    /* are sequential, as they are in ASCII.	*/
    #include <stdio.h>
    
    #define    SIZE 26
    
    int main(void) {
        char lcase[SIZE];
        int i;
        for (i = 0; i < SIZE; i++)
            lcase[i] = 'a' + i;
        for (i = 0; i < SIZE; i++)
            printf("%c ", lcase[i]);
        printf("
    ");
        return 0;
    
    }
    

    3. Use nested loops to produce the following pattern:

    F

    FE

    FED

    FEDC

    FEDCB

    FEDCBA

    /* this implementation assumes the character codes */
    /* are sequential, as they are in ASCII.	*/
    #include <stdio.h>
    
    int main(void) {
        char let = 'F';
        char start;
        char end;
    
        for (end = let; end >= 'A'; end--) {
            for (start = let; start >= end; start--)
                printf("%c", start);
            printf("
    ");
        }
    
        return 0;
    }
    

    6. Write a program that prints a table with each line giving an integer, its square, and its cube. Ask the user to input the lower and upper limits for the table. Use a for loop.

    #include <stdio.h>
    
    int main(void) {
        int lower, upper, index;
        int square, cube;
    
        printf("Enter starting integer: ");
    
        scanf("%d", &lower);
        printf("Enter ending integer: ");
        scanf("%d", &upper);
    
        printf("%5s %10s %15s
    ", "num", "square", "cube");
        for (index = lower; index <= upper; index++) {
            square = index * index;
            cube = index * square;
            printf("%5d %10d %15d
    ", index, square, cube);
        }
    
        return 0;
    
    }
    

    8. Write a program that requests two floating-point numbers and prints the value of their difference divided by their product. Have the program loop through pairs of input values until the user enters nonnumeric input.

    #include <stdio.h>
    
    int main(void) {
        double n, m;
        double res;
    
        printf("Enter a pair of numbers: ");
    
        while (scanf("%lf	%lf", &n, &m) == 2) {
            res = (n - m) / (n * m);
            printf("(%.3g - %.3g)/(%.3g * %.3g) = %.5g
    ", n, m, n, m, res);
            printf("Enter next pair (non-numeric to quit): ");
        }
        return 0;
    }

    11. Write a program that reads eight integers into an array and then prints them in reverse order.

    #include <stdio.h>
    
    int main(void) {
        int numbers[8];
        int size = sizeof(numbers) / sizeof(numbers[0]);
    
        printf("Enter the values of the elements in the array: 
    ");
        for (int i = 0; i < size; i++) {
            scanf("%d", &numbers[i]);
        }
        printf("The elements in the array in an inverse order:
     ");
        for (int i = size - 1; i >= 0; i--)
            printf("%d ", numbers[i]);
        return 0;
    }

    13. Write a program that creates an eight-element array of ints and sets the elements to the first eight powers of 2 and then prints the values. Use a for loop to set the values, and, for variety, use a do while loop to display the values.

    /* This	version starts with the 0 power */
    #include <stdio.h>
    
    #define    SIZE 8
    
    int main(void) {
        twopows[SIZE];
        int
        int i;    /* 2 to the 0 */
        int value = 1;
        for (i = 0; i < SIZE; i++) {
            twopows[i] = value;
    
        }
        value *= 2;
    
        i = 0;
        do {
            printf("%d ", twopows[i]);
            i++;
        } while (i < SIZE);
        printf("
    ");
    
        return 0;
    
    }
    

    14. Write a program that creates two eight-element arrays of doubles and uses a loop to let the user enter values for the eight elements of the first array. Have the program set the elements of the second array to the cumulative totals of the elements of the first array. For example, the fourth element of the second array should equal the sum of the first four elements of the first array, and the fifth element of the second array should equal the sum of the first five elements of the first array. (It’s possible to do this with nested loops, but by using the fact that the fifth element of the second array equals the fourth element of the second array plus the fifth element of the first array, you can avoid  nesting and just use a single loop for this task.) Finally, use loops to display the contents of the two arrays, with the first array displayed on one line and with each element of the second array displayed below the corresponding element of the first array.

    #include <stdio.h>
    
    #define size 8
    
    int main(void) {
        double nums1[size], nums2[size];
        printf("Please enter the values of the elements in nums1: 
    ");
        for (int i = 0; i < size; i++)
            scanf("%lf", &nums1[i]);
    
        double sum = 0;
        for (int i = 0; i < size; i++) {
            sum = sum + nums1[i];
            nums2[i] = sum;
        }
        printf("The elements in the first array:  ");
        for (int i = 0; i < size; i++)
            printf("%7.2lf ", nums1[i]);
        printf("
    ");
        printf("The elements in the second array: ");
        for (int i = 0; i < size; i++)
            printf("%7.2lf ", nums2[i]);
        return 0;
    }

    16. Daphne invests $100 at 10% simple interest. (That is, every year, the investment earns an interest equal to 10% of the original investment.) Deirdre invests $100 at 5% interest compounded annually. (That is, interest is 5% of the current balance, including previous addition of interest.) Write a program that finds how many years it takes for the value of Deirdre’s investment to exceed the value of Daphne’s investment. Also show the two values at that time.

    #include <stdio.h>
    
    #define RATE_SIMP 0.10
    #define RATE_COMP 0.05
    #define INIT_AMT 100.0
    
    int main(void) {
        double daphne = INIT_AMT;
        double deidre = INIT_AMT;
        int years = 0;
    
        while (deidre <= daphne) {
            daphne += RATE_SIMP * INIT_AMT;
            deidre += RATE_COMP * deidre;
            ++years;
        }
    
        printf("Investment values after %d years:
    ", years);
        printf("Daphne: $%.2f
    ", daphne);
        printf("Deidre: $%.2f
    ", deidre);
        
        return 0;
    }
    
    苟利国家生死以, 岂因祸福避趋之
  • 相关阅读:
    基于jQuery+JSON的省市联动效果
    根据IP定位用户所在城市信息
    BGP详解
    宜人贷系统架构——高并发下的进化之路
    2016年中国500强利润率最高的公司,中国500强最赚钱的40家公司,ROE最高的公司
    95,96开头的号
    Eclipse Mars: How to Stop Updating Error Reporting Database
    scp传入固件,sysupgrade xx.bin升级固件
    error opening registry key software/javasoft/java runtime environment
    亚洲最佳电影TOP100出炉 你看过几部?
  • 原文地址:https://www.cnblogs.com/chintsai/p/11829249.html
Copyright © 2011-2022 走看看