| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2901 人关注过本帖
标题:C语言程序,不同的编译器,同一个程序运行的结果却不一样
只看楼主 加入收藏
wyp331993272
Rank: 2
等 级:论坛游民
帖 子:8
专家分:30
注 册:2011-6-21
结帖率:50%
收藏
 问题点数:0 回复次数:4 
C语言程序,不同的编译器,同一个程序运行的结果却不一样
#include<stdio.h>
int  main()
{
     int money=0;
     int inmoney;
     char c;
     printf("请输入您需要添加的金额:");
     scanf("%d",&inmoney);
     scanf("%*[^\n]");
     scanf("%*c");    //清除输入缓冲区多余的元素
     printf("您是否确定对此操作?Y/N");
     scanf("%s",&c);
     scanf("%*c");
     while(c!='y'&&c!='Y'&&c!='n'&&c!='N')
     {
         printf("输入有误!请重新输入...\n");
         scanf("%s",&c);
     }
     if(c=='Y'||c=='y')
     {
         money+=inmoney;
         printf("添加成功!您当前金额为%d\n",money);
     
     }
     if(c=='n'||c=='N')
      
     {
         printf("您取消了此操作!");
         printf("您当前的金额为%d\n",money);
     }
     return 0;
}
vc6.0编译器运行的结果是对的
图片附件: 游客没有浏览图片的权限,请 登录注册

centos系统终端编译器运行的结果却不对
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include money 缓冲区 C语言 编译器 
2012-04-15 09:59
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
有可能...

编程之路定要走完……
2012-04-15 10:06
燃高
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:140
注 册:2011-12-13
收藏
得分:0 
这个可能性是有的!!!比如i+++,有的编译器是先自加 然后再加,而有的编译器是先加 然后再自加,当然这个很少见呢!!!
2012-04-15 10:10
wyp331993272
Rank: 2
等 级:论坛游民
帖 子:8
专家分:30
注 册:2011-6-21
收藏
得分:0 
回复 楼主 wyp331993272
嗯,刚开始我郁闷了好久。还以为是我的程序逻辑那里出错了。不知道有什么办法可以解决

正因为人生充满期望,才少了许多灵魂
2012-04-15 10:12
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:0 
scanf("%*c");
清除缓冲用fflush(stdin);试试
最好在每个scanf 后面都加,
因为你的程序有许多地方用到scanf

用心做一件事情就这么简单
2012-04-15 10:34
快速回复:C语言程序,不同的编译器,同一个程序运行的结果却不一样
数据加载中...
 
   



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

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