| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 642 人关注过本帖
标题:为什么这么多错
只看楼主 加入收藏
weixun
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2009-7-13
结帖率:100%
收藏
已结贴  问题点数:15 回复次数:6 
为什么这么多错
#include<iostream>
using namespace std;
int main()
{
    int x,y,z,k,f,e;
    int nuber;
    cout<<"请输入不大于5位的数字"<<endl;
    cin>>nuber;
    if(nuber>9999)
        e=5;
        cout<<"它是5位数"<<endl;
    else if(nuber>999)
        e=4;
        cout<<"它是4位数"<<endl;
    else if(nuber>99)
        e=3;
        cout<<"它是3位数"<<endl;
    else if(nuber>9)
        e=2;
        cout<<"它是2位数"<<endl;
    else
        e=1;
        cout<<"它是1位数"<<endl;
    x=(int)(nuber/10000);
    y=(int)(nuber-10000*x)/1000;
    z=(int)(nuber-10000*x-1000*y)/100;
    k=(int)(nuber-10000*x-1000*y-100*z)/10;
    f=(int)(nuber-10000*x-1000*y-100*z-10*k);
    switch(e)
    {
    case 5:cout<<x<<y<<z<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<z<<y<<x<<endl;
    case 4:cout<<y<<z<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<z<<y<<endl;
    case 3:cout<<z<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<z<<endl;
    case 2:cout<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<endl;
    case 1:cout<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<endl;
    }
    return 0;
}
先求出是几位数,然后是相反显示出来。
谢谢!!
搜索更多相关主题的帖子: include 
2009-10-12 19:57
洪夜馨
Rank: 1
等 级:新手上路
帖 子:85
专家分:5
注 册:2009-6-12
收藏
得分:5 
我也是小白,你看下版块上就发现我的很多问题了
我不知道我说的对不对,就先提出来了,看看下面别人是怎么查的:
1、if(nuber>9999) 后面应该是回车+“{”吧,在大括号里面加e=5; cout<<"它是5位数"<<endl;+“}”
我认为正确的是:
if(n<0 || n>99999)
{
  cout<<"错误"<<endl;
}
  else
   {
    if(nuber>9999)
    {
        e=5;
        cout<<"它是5位数"<<endl;
    }
    else
    {
        if(nuber>999)
        {
            e=4;
            cout<<"它是4位数"<<endl;
        }
        else
        {
            if(nuber>99)
            {
                e=3;
                cout<<"它是3位数"<<endl;
            }
            else
            {
                if(nuber>9)
                {
                    e=2;
                    cout<<"它是2位数"<<endl;
                }
                else
                {
                    if(nuber>=0)
                    {
                        e=1;
                        cout<<"它是1位数"<<endl;
                    }
                    else
                    {
                        cout<<"输入错误"<<endl;
                    }
                }
            }
        }
    }
  }
我看书上都这样的,不知道不加可不可以。
    x=(int)(nuber/10000);
    y=(int)(nuber-10000*x)/1000;
    z=(int)(nuber-10000*x-1000*y)/100;
    k=(int)(nuber-10000*x-1000*y-100*z)/10;
    f=(int)(nuber-10000*x-1000*y-100*z-10*k);
这个我不知道,我上次问的时候别人给的是下面这个样子的:(地址我忘记了,所以不知道我写的对不对,抱歉)
        x = nuber/10000;
        y = nuber/1000%10;
        z = nuber/100%10;
        k = nuber/10%10;
        f = nuber%10
后面一样的:
    switch(e)
    {
    case 5:cout<<x<<y<<z<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<z<<y<<x<<endl;
    case 4:cout<<y<<z<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<z<<y<<endl;
    case 3:cout<<z<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<z<<endl;
    case 2:cout<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<endl;
    case 1:cout<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<endl;
    }
我改成
    switch(e)
    {
    case '5':
       {
        cout<<x<<y<<z<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<z<<y<<x<<endl;
       }
    …………
这样子的。
也不知道这样对不对。我也是新手,也不知道我是不是越帮越忙了。你看看其他人吧。

[ 本帖最后由 洪夜馨 于 2009-10-12 20:42 编辑 ]
2009-10-12 20:36
shl305
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:36
专家分:121
注 册:2009-3-13
收藏
得分:5 
两个错误
1 if-else 中每一部分都要用{}括起来
2 switch中每个case最后要加 break
2009-10-12 21:44
weixun
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2009-7-13
收藏
得分:0 
为什么(int)要用括号括起来啊?
2009-10-15 13:26
哥特复兴
Rank: 2
来 自:China-上海
等 级:论坛游民
帖 子:20
专家分:64
注 册:2009-6-23
收藏
得分:5 
(int)代表强制类型转换,也就是说如果用户输入一个非数子的字符,这里可以强制转换成整形类型,但在这里用就没有这个必要了。
还有,楼主在用条件分支语句switch……case的时候记得加上中断语句break;要不然每条语句系统都会执行一次。
完整代码如下:
#include<iostream>
using namespace std;
void main()
{
    int x,y,z,k,f,e;
    int nuber;
    cout<<"请输入不大于5位的数字"<<endl;
    cin>>nuber;
    if(nuber>9999)
    {
        e=5;
        cout<<"它是5位数"<<endl;}
    else if(nuber>999)
    {
        e=4;
        cout<<"它是4位数"<<endl;
    }
    else if(nuber>99)
    {
        e=3;
        cout<<"它是3位数"<<endl;
    }
    else if(nuber>9)
    {
        e=2;
        cout<<"它是2位数"<<endl;
    }
    else  
    {
        e=1;
        cout<<"它是1位数"<<endl;
    }
    x=(int)(nuber/10000);
    y=(int)(nuber-10000*x)/1000;
    z=(int)(nuber-10000*x-1000*y)/100;
    k=(int)(nuber-10000*x-1000*y-100*z)/10;
    f=(int)(nuber-10000*x-1000*y-100*z-10*k);
    switch(e)
    {
    case 5:cout<<x<<y<<z<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<z<<y<<x<<endl;
        break;
    case 4:cout<<y<<z<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<z<<y<<endl;
        break;
    case 3:cout<<z<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<z<<endl;
        break;
    case 2:cout<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<k<<endl;
        break;
    case 1:cout<<k<<f<<endl;
        cout<<"反顺序是:"<<f<<endl;
        break;
    }
}
2009-10-15 14:56
weixun
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2009-7-13
收藏
得分:0 
好的
2009-10-15 15:56
weixun
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2009-7-13
收藏
得分:0 
非常感谢

2009-10-15 15:57
快速回复:为什么这么多错
数据加载中...
 
   



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

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