| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1215 人关注过本帖
标题:帮忙看看哪里出问题了~~~~~代码没有语法错误,但是运行上不符合我的想法
取消只看楼主 加入收藏
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
帮忙看看哪里出问题了~~~~~代码没有语法错误,但是运行上不符合我的想法
#include<stdio.h>
void main()
{
    float a,b;
    char c;
    printf("Please input b\n");
    scanf("%f",&b);
    do
    {
        scanf("%c",&c);
        if(c=='=')
            break;
        scanf("%f",&a);
        switch(c)
        {
        case '+':printf("%f",b+=a);break;//问题出在+和-这里了,为什么输入后计算不连贯了例如23+40=75*或者除80=某个数+或者-1000按Enter不得出数据为什么//
        case '-':printf("%f",b-=a);break;
        case '*':printf("%f",b*=a);break;
        case '/':printf("%f",b/=a);break;
        }
    }while(1);
    printf("%f",b);
}
搜索更多相关主题的帖子: 语法 代码 运行 
2010-10-11 11:29
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
收藏
得分:0 
还是不行,运行不到~~
2010-10-11 17:57
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
收藏
得分:0 
循环不是死循环~~~~~~~~~~~~~~~~~我验证过了
2010-10-12 20:06
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
收藏
得分:0 
传图你们看~~~~~~~~~~~
2010-10-12 20:06
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
收藏
得分:0 
以下是引用日的起烟烟在2010-10-11 19:07:05的发言:

LZ代码的问题主要还是在处理优先级上··

如果输入 33+55*45+21=

那么在处理掉输入缓冲的情况下··依照LZ的代码来计算只是在计算  ((33+55)* 45 )+ 21
可能问题就在这里~~~~~~~~~
2010-10-12 20:11
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
收藏
得分:0 
按理算的话~~我这个是已经算出前面的然后把算出的值赋给b了啊~~~~~~~~应该没什么问题啊~~~~~~~~~~~~
2010-10-12 20:12
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
收藏
得分:0 
御版主能给个提示怎么处理优先级的问题吗?谢谢!!我再想想~~~
2010-10-12 20:23
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
收藏
得分:0 
#include<stdio.h>
void main()
{
    float a,b;
    char c;
    printf("Please input b\n");
    scanf("%f",&b);
    do
    {
        scanf("%c",&c);
        if(c=='=')
            break;
        scanf("%f",&a);
        switch(c)
        {
        case '+':printf("%f",b+=a);break;//问题出在+和-这里了,为什么输入后计算不连贯了例如23+40=75*或者除80=某个数+或者-1000按Enter不得出数据为什么//
        case '-':printf("%f",b-=a);break;
        case '*':printf("%f",b*=a);break;
        case '/':printf("%f",b/=a);break;
        }
        fflush(stdin);
    }while(1);
    printf("%f",b);
}
谢谢~~日的起烟烟~~~~~~~~~~~这样代码就是对的了~~~~~~~~~~~~~~~
2010-10-13 11:49
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
收藏
得分:0 
谢谢日不起的烟烟对fflush的详细解释~~~~~~~~看来要多看书才行啊~~~~~~~~~~~~
2010-10-13 11:51
快速回复:帮忙看看哪里出问题了~~~~~代码没有语法错误,但是运行上不符合我的想法 ...
数据加载中...
 
   



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

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