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