3.16作业运算符及分支语句

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

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

ubuntu@ubuntu:day4$ vi 作业分析语句.c
ubuntu@ubuntu:day4$ gcc 作业分析语句.c
ubuntu@ubuntu:day4$ ./a.out

7,3,4
7,4,5
0,5,6
1,4,5
5,4,6ubuntu@ubuntu:day4$ cat 作业分析语句.c
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

    void main()
{
     int num,num2,num3;   
     num=1;    //定义num = 1
     num2=2;   //定义num2 = 2
     num3=3;   //定义num3 = 3
     num=++num2+ ++num3;  //此时表达式为num = 3 + 4       
     printf("\n%d,%d,%d",num,num2,num3);//输出结果1// 结果中 num = 7;num2 = 3; num3 = 4 
     num=num2++ + num3++;   //此时表达式为num = 3 + 4        
     printf("\n%d,%d,%d",num,num2,num3); //输出结果2// 结果中 num = 7;num2 = 4; num3 = 5 
     num=++num2> num3++;     //此时表达式为num = 5 > 5 = 0      
     printf("\n%d,%d,%d",num,num2,num3); //输出结果3// 结果中 num = 0;num2 = 5; num3 = 6 
     num=num2-- && --num3;   //此时表达式为num = 5 && 5 = 1        
     printf("\n%d,%d,%d",num,num2,num3); //输出结果4// 结果中 num = 1;num2 = 4; num3 = 5 
     num  =  num2>num3 ? num2++ : num3++;     //此时表达式为num = 4>5 ? 4 : 5;       
     printf("\n%d,%d,%d",num,num2,num3); //输出结果5// 结果中 num = 5;num2 = 4; num3 = 6 
}

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

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, const char *argv[])
{
    float F;
    float C;
    scanf("%f", &F);
    C = (5.0 / 9.0) * (F - 32);
    printf("摄氏度为%.2f\n", C);

    return 0;
}

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

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, const char *argv[])
{
    int a = 0;
    int b = 0;
    char operator;
    scanf("%d%c%d", &a, &operator, &b);
    switch(operator){
    case '+':
        printf("%d + %d = %d\n", a, b, a+b);
        break;
    case '-':
        printf("%d - %d = %d\n", a, b, a-b);
        break;
    case '*':
        printf("%d * %d = %d\n", a, b, a*b);
        break;
    case '/':
        printf("%f / %f = %f\n", (float)a, (float)b, (float)a/(float)b);
        break;
    case '%':
        printf("%d %% %d = %d\n", a, b, a%b);
        break;
    }
    return 0;
}

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

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

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, const char *argv[])
{
    int year = 0;
    int month = 0;
    int day = 0;
    scanf("%d %d %d", &year, &month, &day);
    if(year != 2023 ){
        printf("该日期不符合今年的年份\n");
    }else{
    switch(month){
    case 1:
        printf("该日期是今年第%d天\n", day);
        break;
    case 2:
        printf("该日期是今年第%d天\n", day+31);
        break;
    case 3:
        printf("该日期是今年第%d天\n", day+59);
        break;
    case 4:
        printf("该日期是今年第%d天\n", day+90);
        break;
    case 5:
        printf("该日期是今年第%d天\n", day+120);
        break;
    case 6:
        printf("该日期是今年第%d天\n", day+151);
        break;
    case 7:
        printf("该日期是今年第%d天\n", day+181);
        break;
    case 8:
        printf("该日期是今年第%d天\n", day+212);
        break;
    case 9:
        printf("该日期是今年第%d天\n", day+243);
        break;
    case 10:
        printf("该日期是今年第%d天\n", day+273);
        break;
    case 11:
        printf("该日期是今年第%d天\n", day+304);
        break;
    case 12:
        printf("该日期是今年第%d天\n", day+334);
        break;
    default:
        printf("今年不存在该月份\n");
        break;
                }
                    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值