| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 992 人关注过本帖
标题:把别人的一个程序改造,却怎么也不能正确运行了,求助
只看楼主 加入收藏
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:12 
把别人的一个程序改造,却怎么也不能正确运行了,求助
求助,下面是修改别人的程序:
#include "stdio.h"
#include "conio.h"
main()
{   
    float i=0,k=0,m=0;   
    char j;         
    printf("输入要进行运算的数字:");
    scanf("%f,%f",&i,&k);
    while(1)
     {
        printf("输入运算符:");
        scanf("%c",&j);
        switch(j)
        {
            case'+':printf("%f",i);break;
            case'-':printf("%f",k);break;
            case'*':printf("%f",i++);break;
            case'/':printf("%f",k++);break;        
            default:printf("data error\n");        
        }
    }
}
问题在于程序无论如何都会执行default语句,并且每次都和printf("输入运算符:");一起执行,然后才执行scanf("%c",&j);,根据程序运行的规则:从上而下,不可能会是这样啊
搜索更多相关主题的帖子: 改造 运行 
2010-06-19 14:49
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:5 
在scanf("%c",&j);前加一句getchar();或getch();

★★★★★为人民服务★★★★★
2010-06-19 15:41
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
能帮我解释下吗?谢谢大哥了
2010-06-19 15:49
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
回复 2楼 cnfarer
能帮我解释下吗?谢谢大哥了
2010-06-19 15:53
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
scanf是从缓冲区接受输入数据的,通过getchar()将缓冲区已存储的内容清除,scanf就能正确得到键盘输入内容了。

★★★★★为人民服务★★★★★
2010-06-19 16:03
jmjy
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:44
专家分:146
注 册:2010-1-7
收藏
得分:0 
版主说的~~~额··好像没说到点子上咧··
2010-06-19 16:49
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:5 
版主说的还不清楚么……清除换行符即可正常运行,不过要在两个地方清除
2010-06-19 17:03
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
回复 5楼 cnfarer
这个知识点对我来说还是全新的,呵呵,谢谢你了,我再唠叨一句:是不是所有两个scanf()函数之间都要加getchar()或者getch()呢?以前我怎么没碰到过这种问题啊,拜托大哥了...
2010-06-19 18:49
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
回复 5楼 cnfarer
#include "stdio.h"
#include "conio.h"
main()
{   
    int i,k,m;   
    char j;
    printf("input i:");
    scanf("%d",&i);
    printf("input k:");
    scanf("%d",&k);
    printf("%d,%d",i,k);
   
}
这个里面不要getchar()也能运行正确啊
2010-06-19 19:03
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:5 
处理字符的时候才要注意这个问题,别的不用
2010-06-19 19:20
快速回复:把别人的一个程序改造,却怎么也不能正确运行了,求助
数据加载中...
 
   



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

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