注册 登录
编程论坛 C++教室

求问 break statement not within loop or switch

by_stro 发布于 2013-09-16 23:30, 5368 次点击
程序代码:
#include <iostream.h>
#include <math.h>
int main()
{
    double x,z;
    int y;
    cout<<"请输入购买哈密瓜的公斤数"<<endl;
    cin>>x;
    y=x/2.5;
    switch(y)
    case 0: z=2*x;break;
    case 1: z=1.8*x;break;
    case 2: z=1.6*x;break;
    case 3: z=1.4*x;break;
    case 4: z=1.2*x;break;
    default:
    z=1.2*x;
    cout<<"总金额为:"<<z<<endl;
}

请问错在哪里?新手,谢谢!
原题:
(3)哈密瓜按重量不同而售价不同,分别为:
2. 5公斤以下,每公斤2元;
2. 5~5公斤,每公斤1.8元;
5~7.5公斤,每公斤1. 6元;
7. 5~10公斤,每公斤1.4元;
10公斤以上,每公斤1.2元。
用switch语句编写程序,求买x公斤哈密瓜,需要多少钱。
5 回复
#2
blueskiner2013-09-17 05:25
程序代码:
#include <iostream.h>
#include <math.h>
int main()
{
    double x,z;
    int y;
    cout<<"请输入购买哈密瓜的公斤数"<<endl;
    cin>>x;
    y=x/2.5;
    switch(y) {
    case 0: z=2*x;break;
    case 1: z=1.8*x;break;
    case 2: z=1.6*x;break;
    case 3: z=1.4*x;break;
    case 4: z=1.2*x;break;
    default: /* z=1.2*x */;break;
    }
    cout<<"总金额为:"<<z<<endl;
}

修正如上,不过,switch不太适用你给出题目的场景。我建议使用if else。
程序代码:
double x,z;
    std::cout<<"请输入购买哈密瓜的公斤数"<<std::endl;
    std::cin>>x;
    if (x < 2.5) {
        z = x * 2;
    } else if (x >= 2.5 && x < 5) {
        z = x * 1.8;
    } else if (x >= 5 && x < 7.5) {
        z = x * 1.6;
    } else if (x >= 7.5 && x < 10) {
        z = x * 1.4;
    } else if (x >= 10) {
        z = x * 1.2;
    } else {
        z = 0;
    }
    std::cout<<"总金额为:"<<z<<std::endl;
#3
pauljames2013-09-17 05:49
switch语句后面的所有case应该是一个语句体,要括起来
#4
by_stro2013-09-17 10:33
回复 2楼 blueskiner
谢谢!其实我也觉得用if else好;
另外,请问:
int main()  void main()  main(void) 有什么区别?

#include <iostream.h>
后跟着的 函数 main() 一般如何选定的?int 、void、double、等如何选择?
问题有点多!谢谢哈~
#5
blueskiner2013-09-17 18:05
void main() 跟main(void)没区别
而int main()要求主函数返回值,标准的主函数一般是int main(int argc, char** argv),函数具体什么作用,请自己查看C语言参考手册。
#6
peach54602013-09-17 20:17
回复 5楼 blueskiner
void main() 跟main(void)不同
C语言这两个是不同的...
1