| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1215 人关注过本帖
标题:帮忙看看哪里出问题了~~~~~代码没有语法错误,但是运行上不符合我的想法
只看楼主 加入收藏
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:26 
帮忙看看哪里出问题了~~~~~代码没有语法错误,但是运行上不符合我的想法
#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
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
scanf("%c",&c); 后面加个getchar()  注意a,b的取值范围!
2010-10-11 11:42
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
#include<stdio.h>
void main()
{
    float a,b;
    char c;
    printf("Please input b\n");
    scanf("%f",&b);
    do
    {
        fflush( stdin ) ;
        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);
}
看见红色的代码了吗??清除一下键盘流中的内容!!!

[ 本帖最后由 我菜119 于 2010-10-11 11:58 编辑 ]

愿用余生致力编程
2010-10-11 11:55
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
收藏
得分:0 
还是不行,运行不到~~
2010-10-11 17:57
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
回复 4楼 xx342508809
你到底要实现一个什么样的功能??

愿用余生致力编程
2010-10-11 18:18
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
你说的不连贯是什么意思??

愿用余生致力编程
2010-10-11 18:20
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
可怜三楼的改法是不可行的,楼主要的是一行里输入一个表达式,你那个在这种情况是无法正常的,并且这用法也不标准

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-10-11 18:55
linshao512
Rank: 2
等 级:论坛游民
帖 子:15
专家分:18
注 册:2010-10-10
收藏
得分:0 
#include<stdio.h>
void main()
{
    float a,b;
    char c;
    printf("Please input b\n");
    scanf("%f",&b);
    //getchar();
    do
    {
        getchar();
        printf("please input c\n");
        scanf("%c",&c);
        if(c=='=')
            break;
        printf("please intput a\n");
        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 19:01
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
收藏
得分:0 
LZ代码的问题主要还是在处理优先级上··

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

那么在处理掉输入缓冲的情况下··依照LZ的代码来计算只是在计算  ((33+55)* 45 )+ 21

2010-10-11 19:07
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
回复 7楼 御坂美琴
敢问一下我的这个改法为什么是不标准的!!!

愿用余生致力编程
2010-10-11 20:06
快速回复:帮忙看看哪里出问题了~~~~~代码没有语法错误,但是运行上不符合我的想法 ...
数据加载中...
 
   



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

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