问题标题: 怎么错了 1737

0
0
已解决
黄瀚霆
黄瀚霆
初级光能
初级光能
​
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int a;
    cin>>a;
    if(0<a&&a<=10)
        printf("%.2f",a*0.80+0.2);
    if (10<a&&a<=20)
        printf("%.2f",a*0.75+0.2);
    if(20<a&&a<=30)
        printf("%.2f",a*0,70+0.2);
    if(a>30)
        cout<<"Sorry";
    return 0;
}

​

 


1
已采纳
马佳滢
马佳滢
新手天翼
新手天翼

黄瀚霆你好!

只要改一点点就好了:

错误:

printf("%.2f",a*0,70+0.2);

改成:

printf("%.2f",a*0.70+0.2);

细心地看一下,你的a*0.70+0.2写错了;你写的是a*0,70+0.2。(注意一下我划横线“ ”的标点)

还有,用你的程序运行后输入30会输出0.00。

以后写程序,运行时各种情况都试一下,不要测试数据过了就行哈。

0
刘振波
刘振波
初级光能
初级光能
printf("%.2f",a*0,70+0.2);

改成:

printf("%.2f",a*0.70+0.2);
0
方宇哲
方宇哲
资深守护
资深守护
if(a<=10)
    {
        s+=a*0.80+0.2;
        printf("%.2f",s);
    }else if(a>10&&a<=20)
    {
        s+=a*0.75+0.2;
        printf("%.2f",s);
    }else if(a>20&&a<=30){
        s+=a*0.70+0.2;
        printf("%.2f",s);
    }else {
        cout<<"Sorry";
    }

这是我写的你可以参考一下

0
谈文瑞
谈文瑞
新手光能
新手光能
printf("%.2f",a*0,70+0.2);

改成:

printf("%.2f",a*0.70+0.2);
0
-1
詹子都
詹子都
新手光能
新手光能

核心代码如下:

 if (0<a&&a<=10)
        b=0.80*a+0.2;
 if (10<a&&a<=20)
        b=0.75*a+0.2;
 if (20<a&&a<=30)
        b=0.70*a+0.2;

再if判断一下

最后如果大于30输出Sorry

用printf保留两位小数并输出b

别忘了头文件#include<cstdio>

-1
郑怡翔
郑怡翔
初级天翼
初级天翼
if(0<a&&a<=10)
    if (10<a&&a<=20)

    if(20<a&&a<=30)

尽量不要这样

还有

你最后输出的是两位小数,可是你前面定义的是int类型,所以乘0.8,0.75,0.7结果的小数部分就被自动忽略,所以就错了

最好再定义一个变量(double类型),或者把a定义成double类型(实型包括整型)

我要回答