| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 595 人关注过本帖
标题:关于switch语句
只看楼主 加入收藏
aiyinsitan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:183
专家分:177
注 册:2010-4-22
结帖率:89.47%
收藏
已结贴  问题点数:20 回复次数:7 
关于switch语句
#include "iostream.h"
#include "math.h"
#include "stdio.h"
zz(char *,int);
void main()
{
    char str1[8],*p1,*p2,a1,a2,*p;
    int i,j1=0,j2=0,k=0;
    double b1,b2;
    cin>>str1;
    p=str1;
    for(i=0;i<8;i++)
    {   
        
        if(str1[i]=='+'||str1[i]=='-'||str1[i]=='*'||str1[i]=='/')
            break;
            j1++;
        
    }
    p1=new char[j1];
    for(i=0;i<j1;i++)
    {
        p1[i]=str1[i];
    }
    a1=str1[i+1];
    for(i=i+1;i<8;i++)
    {
        if(str1[i]=='=')
        break;
        j2++;
    }
    p2=new char[j2];
    for(i=0;i<j2;i++)
    {
     p2[i]=str1[i+j1+1];
    }
    a2=str1[j1+j2+2];
  b1=zz(p1,j1);
   //cout<<b1;
   b2=zz(p2,j2);
   cout<<b2;
    //cout<<j1<<endl;
    //cout<<j2;
   if(a2=='=')
   {
       switch(a1)
       case '+':cout<<b1<<"+"<<b2<<b1+b2;break;
       case '-':cout<<b1<<"-"<<b2<<b1-b2;break;
       case '*':cout<<b1<<"*"<<b2<<b1*b2;break;
       case '/':
           if(b2==0)
           {
               cout<<"error!!"<<endl;
           }
           else
          cout<<b1<<"/"<<b2<<b1/b2;break;
       default:
           cout<<"输入错误:";break;
   }
   
}
zz(char *p,int n)
{
    double a,sum=0.00;
    int i=0;
    while(i<n)
    {
        a=(*p-48)*pow(10,n-1);
        sum=sum+a;
        //cout<<a<<endl;
        p++;
        n--;
        
    }
    return sum;

}
计算器的输出,结果要是保留两位小数,但是我的程序switch语句好像有点问题,麻烦帮忙看一下
搜索更多相关主题的帖子: switch 语句 
2010-12-09 23:19
aiyinsitan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:183
专家分:177
注 册:2010-4-22
收藏
得分:0 
输出结果是要保留两位小数该怎么搞??
2010-12-09 23:20
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:7 
可以用:
cout << fixed << setprecision(2) << ...

当然也可以用
printf("%2f");
2010-12-09 23:27
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
哦,用第一个要
#include <iomanip>
2010-12-09 23:28
aiyinsitan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:183
专家分:177
注 册:2010-4-22
收藏
得分:0 
回复 4楼 pangding
可否帮我看看一下程序,switch语句那个地方好像又问题
2010-12-09 23:34
小治
Rank: 2
来 自:安徽
等 级:论坛游民
帖 子:30
专家分:20
注 册:2010-2-18
收藏
得分:7 
你看一下这样可以吗?
#include "iostream.h"
#include "math.h"
#include "stdio.h"
double zz(char *,double);
void main()
{
    char str1[8],*p1,*p2,a1,a2,*p;
    int i,j1=0,j2=0,k=0;
    double b1,b2;
    cin>>str1;
    p=str1;
    for(i=0;i<8;i++)
    {   
        
        if(str1[i]=='+'||str1[i]=='-'||str1[i]=='*'||str1[i]=='/')
            break;
            j1++;
        
    }
    p1=new char[j1];
    for(i=0;i<j1;i++)
    {
        p1[i]=str1[i];
    }
    a1=str1[i+1];
    for(i=i+1;i<8;i++)
    {
        if(str1[i]=='=')
        break;
        j2++;
    }
    p2=new char[j2];
    for(i=0;i<j2;i++)
    {
     p2[i]=str1[i+j1+1];
    }
    a2=str1[j1+j2+2];
  b1=zz(p1,j1);
   //cout<<b1;
   b2=zz(p2,j2);
   cout<<b2;
    //cout<<j1<<endl;
    //cout<<j2;
   if(a2=='=')
   {
       switch(a1)
       { case '+':
           cout<<b1<<"+"<<b2<<b1+b2;
       break;
       case '-':
           cout<<b1<<"-"<<b2<<b1-b2;
           break;
       case '*':
           cout<<b1<<"*"<<b2<<b1*b2;
           break;
       case '/':
           if(b2==0)
           {
               cout<<"error!!"<<endl;
           }
           else
           {cout<<b1<<"/"<<b2<<b1/b2;
           break;}
       default:
           cout<<"输入错误:";
           break;
       }
   }
   
}
double zz(char *p,double n)
{
    double a,sum=0.00;
    int i=0;
    while(i<n)
    {
        a=(*p-48)*pow(10,n-1);
        sum=sum+a;
        //cout<<a<<endl;
        p++;
        n--;
        
    }
    return sum;

}
2010-12-10 00:44
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:7 
回复 楼主 aiyinsitan
是否是在switch的那个有if else 分支的地方报错。
如果是的话,你把那个if else 语句块用一个{}括起来应该就没有问题。

祝你好运!

南国利剑
2010-12-10 00:46
aiyinsitan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:183
专家分:177
注 册:2010-4-22
收藏
得分:0 
感谢楼上各位
2010-12-10 12:45
快速回复:关于switch语句
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041399 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved