作业day4

作业1:展开的思路,按要求分析以下代码。

要求不要放到编译器中运行,自己手动分析出每条输出语句的结果,分析出结果后,再在编译器中执行验证结果

void main()

{

int num,num2,num3;

num=1;

num2=2;

num3=3;

num=++num2+ ++num3;

printf("\n%d,%d,%d",num,num2,num3);//输出结果1

7 3 4

num=num2++ + num3++;

printf("\n%d,%d,%d",num,num2,num3); //输出结果2

7 4 5

num=++num2> num3++;

printf("\n%d,%d,%d",num,num2,num3); //输出结果3

0 5 6

num=num2-- && --num3;

printf("\n%d,%d,%d",num,num2,num3); //输出结果4

1 4 5

num = num2>num3 ? num2++ : num3++;

printf("\n%d,%d,%d",num,num2,num3); //输出结果5

5 4 6

}

作业二:编程实现:输入华氏温度F,要求输出对应的摄氏温度C,要求结果保留两位小数。计算公式为:C = 5/9*(F-32);

#include <stdio.h>
int main(int argc, const char *argv[])
{
    float F;//定义输入的华氏温度
    printf("请输入华氏温度F:");
    scanf("%f",&F);
    printf("摄氏温度C=%.2f\n",(float)5/9*(F-32));//输出转换后的摄氏温度
    return 0;
}

作业三:使用switch实现简易计算器:例如,输入一个表达式:3+5,程序输出结果为8.

#include <stdio.h>
int main(int argc, const char *argv[])
{
    int a,b;//定义两个运算的变量ab
    char c;//定义运算符号的输入
    scanf("%d%c%d",&a,&c,&b);
    switch(c){
        case '+':
            printf("%d\n",a+b);
            break;
        case '-':
            printf("%d\n",a-b);
            break;
        case '*':
            printf("%d\n",a*b);
            break;
        case '/':
            if(b==0){
                printf("除法分母不能为0\n");//除法分母为零报错
            }else{
            printf("%.1f\n",(float)a/b);//除法有可能结果不为整数,强转为实型,保留一位小数
            }
            break;
        default:
            printf("输入运算符有误\n");
    }
    return 0;
}

作业四:使用switch实现,要求输入一个日期,输出该日期是对应今年的第几天

例如输入:2023 1 20 输出结果:该日期是今年第20天

#include <stdio.h>
#define M1 31 //宏定义除了二月份的其他月份天数
#define M3 31
#define M4 30
#define M5 31
#define M6 30
#define M7 31
#define M8 31
#define M9 30
#define M10 31
#define M11 30
#define M12 31
int main(int argc, const char *argv[])
{
    int year,mon,day;     //定义年月日
    int sum=0;            //定义一年的第几天数sum
    printf("请输入年月日:");
    scanf("%d %d %d",&year,&mon,&day);
    if(year<0  || mon<1 || mon>12 || day<1 || day>31){//判断日期的合法性
        printf("输入的日期不合法\n");
        return 0;
    }
    int M2;       //定义二月份M2,并判断输入年份润平年判断二月份天数
    if((year%4==0 && year%100!=0)||year%400==0){
        M2=29;
    }else{
        M2=28;
    }
switch(mon){  //利用case击穿原理计算输入的日期是这一年的第几天
    case 12:
        sum+=M11;
    case 11:
        sum+=M10;
    case 10:
        sum+=M9;
    case 9:
        sum+=M8;
    case 8:
        sum+=M7;
    case 7:
        sum+=M6;
    case 6:
        sum+=M5;
    case 5:
        sum+=M4;
    case 4:
        sum+=M3;
    case 3:
        sum+=M2;
    case 2:
        sum+=M1;
    case 1:
        sum+=day;
}
printf("该日期是今年的第%d天\n",sum);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值