能不能简单一点的逻辑把这个做出来?刚接触逻辑

img


输出是22.50

你的代码里面没有完全区分白天和夜间呀,白天的逻辑中只有d<=3的部分
下面两个if是和前面的判断平级的,所以不能区分白天与夜间

img


正确的代码应形如

 if(f==1){
        if(d<=3){//白天部分
            xxx
        }
        if(d>3&&d<=6){
          xxx
        }
        if(d>6){
            xxx
        }
    }else{//夜晚部分
        if(d<=3){
            xxx
        }
        if(d>3&&d<=6){
            xxx
        }
        if(d>6){
            xxx
        }
    }

有帮助望采纳~

你可以像这样定义分段函数
#include<stdio.h>
int main{
int x,y = 0;
scanf("%d",x);
if(x<=3)
y= .....
else if(x<=6)
y = .....
}


#include<iostream>
#include<iomanip>
#include<cstdio>
using namespace std;
int main()
{
    int d,f;
    double ans;
    cin>>d>>f;
    if(f==1){
        if(d<=3){
            ans=9.0;
        }
        if(d>3&&d<=6){
            ans=9+(d-3)*1.5;
        }
        if(d>6){
            ans=9+3*1.5+(d-6)*2.25;
        }
    }else{
        if(d<=3){
            ans=9.0;
        }
        if(d>3&&d<=6){
            ans=9+(d-3)*1.75;
        }
        if(d>6){
            ans=9+3*1.75+(d-6)*2.5;
        }
    }
    printf("%.2f",ans);
    return 0;
}

img


孩子这样写的,提交上去系统只有50分