20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises09

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises09

P132

在这里插入图片描述

/*
编写一程序P132.C实现以下功能
  在屏幕上输出I can printf \n,"\t & \!。
  程序的运行效果应类似地如图1所示。

    I can printf \n,"\t & \!


    碰到转义,一定要多往后再看一个字符!!!!!
    碰到转义,一定要多往后再看一个字符!!!!!
    碰到转义,一定要多往后再看一个字符!!!!!
    碰到转义,一定要多往后再看一个字符!!!!!
    碰到转义,一定要多往后再看一个字符!!!!!
*/

#include <stdio.h>

int main(void)
{

    printf("I can printf \\n,\"\\t & \\!");
    return 0;
}

P265

在这里插入图片描述

/*
编写一程序P265.C实现以下功能
  先从键盘读入7个数据(依次为2实数、3整数、2字符),然后按示例格式倒序输出这7个数据。
    编程可用素材:
        printf("请输入7个数据(依次为2实数、3整数、2字符): ")、
        printf("\n这7个数据倒序为: ")。
  程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。

        请输入7个数据(依次为2实数、3整数、2字符): 61.12376371 152.351192 81 192 35 x m

        这7个数据倒序为: 7-m 6-x 5-35 4-192 3-81 2-152.3511920 1-61.1237637


    本题解题,注意细节!!!
    本题解题,注意细节!!!
    本题解题,注意细节!!!
*/

#include <stdio.h>

int main(void)
{
    double fdata1, fdata2;
    int idata1, idata2, idata3;
    char ch1, ch2;

    printf("请输入7个数据(依次为2实数、3整数、2字符): ");
    scanf("%lf %lf %d %d %d %c %c", &fdata1, &fdata2,
          &idata1, &idata2, &idata3, &ch1, &ch2);
    printf("\n这7个数据倒序为: 7-%c 6-%c 5-%d 4-%d 3-%d 2-%.7lf 1-%.7lf",
           ch2, ch1, idata3, idata2, idata1, fdata2, fdata1);

    return 0;
}

P111

在这里插入图片描述

/*
编写一程序P111.C实现以下功能
  x(x只考虑整数int且必须定义为int、但F(x)完全可能超过int的表示范围)通过键盘输入(输入前给出提示Please input x:),
    然后计算并在屏幕上输出函数值。编程可用素材:
        printf("Please input x: ")、
        printf("\nF(…) = …。

      ┌ -5x+27   (x<0)
  F(x)= ├ 7909     (x=0)
      └ 2x-1     (x>0)

  程序的运行效果应类似地如图1所示,图中的红色部分是从键盘输入的内容。

        Please input x: 3

        F(3) = 5
*/

#include <stdio.h>

int main(void)
{
    int datax;
    double fx;

    printf("Please input x: ");
    scanf("%d", &datax);
    
    // 要特别注意数据运算过后的精度的保留,建议做强制转换,大空间可以容下小空间的数据
    /* 
        1. 要先转换类型,再进行运算,结果才会有精度保留
        2. 不能算完以后再做转算,那样精度肯定丢失
        3. 注意最后的显示格式要求
     */
    if(datax<0)
    {
        fx = -5 * (double)datax + 27;
    }
    else if(datax==0)
    {
        fx = 7909;
    }
    else
    {
        fx = 2 * (double)datax - 1;
    }

    printf("\nF(%d) = %.0lf", datax, fx);

    return 0;
}

P139

在这里插入图片描述

/*
编写一程序P139.C实现以下功能
  从键盘输入5个实数(最多2位小数),输出最小的一个数。
    编程可用素材:printf("请输入5个实数: ")、printf("\n最小的数是 …\n"…。
  程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。

    请输入5个实数: 1, -362.31, 300.2, 800, 120.7

    最小的数是 -362.31
*/

#include <stdio.h>

int main(void)
{
    double da[5];       // 这是一个数组
    double minData;
    int i;

    printf("请输入5个实数: ");
    // 数组的处理,是按元素来的,所以天生会和循环结合起来使用和控制
    for (i = 0; i < 4;i++)
    {
        scanf("%lf, ", &da[i]);
    }
    scanf("%lf", &da[4]);

    minData = da[0];
    for (i = 1; i < 5;i++)
    {
        // printf("%.2lf ", da[i]);
        if(minData>da[i])
        {
            minData = da[i];
        }
    }

    printf("\n最小的数是 %.2lf", minData);

    return 0;
}

P260

在这里插入图片描述

/*
编写一程序P260.C实现以下功能
  从键盘读入3个整数,按由小到大的顺序输出这3个数。
    编程可用素材:
        printf("请输入3个数:");
        printf("\n这三个数由小到大为: %d   %d   %d\n",,,);
  程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。

        请输入3个数:200 1056 72

        这三个数由小到大为: 72   200   1056
*/

#include <stdio.h>

int main(void)
{
    int d1, d2, d3, tmp;
    printf("请输入3个数:");
    scanf("%d %d %d", &d1, &d2, &d3);   // 注意输入格式,用空格间隔

    // 典型的交换算法,可以抽出,重构程序,生成交换函数
    if(d1>d2)
    {
        tmp = d1;
        d1 = d2;
        d2 = tmp;
    }
    if(d1>d3)
    {
        tmp = d1;
        d1 = d3;
        d3 = tmp;
    }
    if(d2>d3)
    {
        tmp = d2;
        d2 = d3;
        d3 = tmp;
    }
    printf("\n这三个数由小到大为: %d   %d   %d\n", d1, d2, d3);

    return 0;
}

P702

在这里插入图片描述

/*
编写一程序P702.C实现以下功能
  输入月份,输出2003年该月有几天。
    当输入的月份超范围时,应输出“Invalid month input”。
    编程可用素材:
        printf("please input the month number: ");
        printf("\nInvalid month input !\n");
        printf("\n2003.%d has %d days\n",,);
  程序的运行效果应类似地如图1和图2所示,图中的红色部分是从键盘输入的内容。

        please input the month number: 4

        2003.4 has 30 days
    图1 程序运行效果示例(输入月份合法)

        please input the month number: 13

        Invalid month input !
*/

#include <stdio.h>

int main(void)
{
    int month;
    int days = -1;

    printf("please input the month number: ");
    scanf("%d", &month);
    if(month <0 || month >12)       // 这就是开关检察,如果这里不通过,后面的业务动作就可以不做了
    {
        printf("\nInvalid month input !\n");
    }
    else
    {
        if(month ==2)
        {
            days = 28;
        }
        else if(month == 4 || month == 6 || month == 9 || month == 11)
        {
            days = 30;
        }
        else
        {
            days = 31;
        }

        printf("\n2003.%d has %d days\n", month, days);
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值