第二次作业。

1.判断成绩等级。

给定一百分制成绩,要求输出成绩的等级。90以上为A,80-89为B,70-79为C,60-69为D,60分以下为E,输入大于100或小于0时输出“输入数据错误”。 分别用if和用switch语句实现

if else形式:

#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a;
    printf("请输入您的成绩:\n");
    scanf("%d",&a);
    if(a>100||a<0)
    {
        printf("输入错误!\n");
        exit(0);
    }
    else
    {
        if(a<=100&&a>=90)
        {
            printf("A\n");
        }
        else if(a<=89&&a>=80)
        {
            printf("B\n");
        }
        else if(a<=79&&a>=70)
        {
              printf("C\n");
        }
        else if(a<=69&&a>=60)
        {
            printf("D\n");
        }
        else
        {
            printf("E\n");
        }
    }
    return 0;
}

else的后边没有条件。

在输入和输出时加\n看着更好。

switch case形式:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,b;
    printf ("请输入您的成绩:\n");
    scanf("%d",&a);
    b=a/10;
    if(a>100||a<0)
    {
        printf("输入错误!\n");
        exit(0);
    }
    else
    {
        switch(b)
        {
            case 10:printf("A\n");
              break;
            case 9: printf("A\n");
              break;
             case 8: printf("B\n");
              break;
            case 7: printf("C\n");
                 break;
            case 6:printf("D\n");
                 break;
            default :printf("E\n");
        }
    }
    return 0;
}

case 后的语句不必加括号。

此问题用switch case 更加简洁。

      2.判断整数位数及逆序输出。

      输入一个不多于5位数的正整数,判断它是几位数并逆序输出。注意验证数据的合法性。

#include <stdio.h>
int main()
{
    int a,b,c,d,e;
    printf("请输入一个不多于五位的整数:\n");
    scanf("%d",&a);
    if(a>=100000||a<=0)
    {
        printf("输入格式错误! \n");
    }
    else
    {
        if(a>=10000&&a<100000)
        {
            b=a/10000+a/1000%10*10+a/100%10*100+a%100/10*1000+a%100%10*10000;
            printf("此为5位数,它的逆序为:%05d\n",b);
        }
        else if(a>=1000&&a<10000)
        {
            c=a/1000+a/100%10*10+a/10%10*100+a%10*1000;
            printf("此为4位数,它的逆序为:%04d\n",c);
        }
        else if(a>=100&&a<1000)
        {
            d=a/100+a%100/10*10+(a%100)%10*100;
            printf("此为3位数,它的逆序为:%03d\n",d);
        }
        else if(a>=10&&a<100)
        {
            e=a/10+a%10*10;
            printf("此为2位数,它的逆序为:%02d\n",e);
        }
        else
        {
            printf("此为个位数,逆序为:%d\n",a);
        }
    }
    return 0;
}

   想输出的数逆序0开头,是几位数就应该用%0?d。

      3. 回文数问题

        给定一个5位数,判断它是否是回文数。例如:12321是回文数。回文数的特点是个位和万位相同,十位和千位相同。

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,b,c,d,e,f;
    printf("请输入您的五位整数:\n");
    scanf("%d",&a);
    if(a<10000||a>=100000)
    {
        printf("输入的不是五位数!\n");
        exit(0);
    }
    else
    {
        b=a/10000;
        c=a/1000%10;
        d=a/100%10;
        e=a%100/10;
        f=a%100%10;
    }
    if(b==f&&c==e)
    {
        printf("此为回文数。\n");
    }
    else
    {
        printf("这个数不是回文数。\n");
    }
    return 0;
}

将每个数都重新赋给另一个数更容易比较。

4. 计算分段函数

        y=-x+2.5                         0 <= x < 5

        y=2-1.5(x-3)(x-3)        5 <= x < 10

        y=x/2-1.5                     10 <= x < 20

       输入x的值(x为整数),输出y的值,结果保留3位小数。

#include <stdio.h>
int main()
{
    int x;
    double y;
    printf("请输入您的x值,x属于0-20:\n");
    scanf("%d",&x);
    if(x<5&&x>=0)
    {
        y=-x+2.5;
        printf("%.3lf\n",y);
    }
    else if(x>=5&&x<10)
    {
        y=2-1.5*(x-3)*(x-3);
        printf("%.3lf\n",y);
    }
    else if(x>=10&&x<20)
    {
        y=x/2-1.5;
        printf("%.3lf\n",y);
    }
    else
    {
        printf("您输入的数不符合x的范围\n");
    }
    return 0;
}

 

问题:初始时我用的float定义的y,但是电脑显示是错误的,然后我换成double就没有问题了。

原因:?

 

转载于:https://www.cnblogs.com/lmlmlm/p/5965623.html

内容概要:本文详细介绍了一个基于Java与Vue的食品安全溯源与智能分析系统的设计与实现,涵盖项目背景、目标意义、面临挑战及解决方案,并阐述了系统的整体架构与核心技术模块。系统通过集成物联网设备实现全流程数据采集,采用分布式数据库保障大数据存储与高效访问,结合机器学习算法进行风险预测与智能预警,同时利用可视化技术呈现溯源链路与分析结果,实现了食品从生产到销售全过程的透明化、智能化管理。文中还提供了关键模块的代码示例,如数据清洗、特征提取、决策树模型训练与预测、溯源接口开发等,增强了项目的可实施性与参考价值。; 适合人群:具备Java开发基础、熟悉Spring BootVue框架,有一定前后端开发经验的软件工程师或计算机专业学生,尤其适合从事食品安全、物联网、大数据分析等相关领域技术研发的人员; 使用场景及目标:①构建食品全链条溯源体系,提升企业对食品安全事件的快速响应能力;②实现生产流程数字化管理,支持政府监管与消费者透明查询;③应用机器学习进行风险建模与智能预警,推动食品行业智能化转型; 阅读建议:建议结合文中提供的模型描述与代码示例,深入理解各模块设计逻辑,重点关注数据处理流程、算法实现与前后端交互机制,可基于该项目进行二次开发或拓展应用于其他行业的溯源系统建设。
Python 第二次作业中涉及了多个知识点,包括基础的循环结构、数学问题的编程实现,以及函数的应用等。以下是对部分作业内容解答的详细说明: 1. **斐波那契数列的打印** 作业中有一个题目要求使用 `for` 循环来打印斐波那契数列的前 10 项。初始值为 `a, b = 0, 1`,并且循环执行 10 次,每次打印当前的 `a` 值。正确的代码片段如下: ```python a, b = 0, 1 for _ in range(10): print(a, end=' ') a, b = b, a + b ``` 上述代码中的关键部分是 `a, b = b, a + b`,这一行代码负责更新斐波那契数列的两个相邻值。通过这种方式,可以高效地生成斐波那契数列[^1]。 2. **高次方程求根** 另一个作业题目涉及求解一个五次方程的根。题目提供了一个函数 `f(x)`,其定义为 $ f(x) = x^5 - 15x^4 + 85x^3 - 225x^2 + 274x - 121 $。为了求解该方程在区间 [1.5, 2.4] 内的根,采用了二分法。具体实现如下: ```python def f(x): return x**5 - 15*x**4 + 85*x**3 - 225*x**2 + 274*x - 121 l, r = 1.5, 2.4 k = 0 while k < 20: mid = (l + r) / 2 x = f(mid) if x > 0: l = mid else: r = mid k += 1 print(round(mid, 6)) ``` 在这段代码中,`while` 循环执行了 20 次,每次通过计算中间值 `mid` 来判断根的位置,并逐步缩小搜索范围。最终输出的 `mid` 是近似解,保留了 6 位小数[^2]。 3. **两数之的查找** 作业还包含了一个经典的算法问题——两数之。题目要求找到数组中两个数的下标,使得它们的等于给定的目标值 `target`。该问题可以通过哈希表(字典)来高效解决。具体实现如下: ```python def twoSum(nums, target): dict_ = {} for i in range(len(nums)): m = nums[i] if target - m in dict_: return (dict_[target - m], i) dict_[m] = i nums = [3, 4, 9, 7, 10] target = 11 res = twoSum(nums, target) print(res) ``` 上述代码中,`twoSum` 函数通过遍历数组并使用字典记录已遍历的数值及其下标,从而在后续查找中快速判断是否存在满足条件的配对。最终输出结果是 `(0, 1)`,表示数组中索引为 0 1 的两个数之等于目标值 11[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值