标题:哥哥,这个你真搞定了,那你是真厉害!
只看楼主
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
得分:0 
以下是引用cacker在2010-10-13 00:54:40的发言:

每次scanf()后边都加个提交缓冲区函数就好了

代码写的这个不规范啊  看的我蛋疼

提交缓冲区函数是fflush(stdin);   注:是所有的scanf();下一条都加上

楼猪大大 看这个 啊 什么是缓冲区 Google吧

想象力征服世界
2010-10-13 19:56
lishizelibin
Rank: 2
等 级:论坛游民
帖 子:513
专家分:41
注 册:2007-5-10
得分:0 
程序代码:
#include <math.h>
#include <stdio.h>
#include <conio.h>
int main()
{
    float num1,num2,result;
    char answer,fuhao;
    int right;
    clrscr();/*清平*/
    printf("*********welcome to lin er ming's system*********");
    printf("\n");
     do
     {
         printf("please enter num1,fuhao,num2:");
         scanf("%f%c%f",&num1,&fuhao,&num2);/*可以修改输入,会更好*/
         getchar();
         printf("please enter your answer:");
         scanf("%f",&result);
         getchar();
         switch(fuhao)
         {
             case '+':if(result==(num1+num2)) right=1;
                         else
                           right=0;
                       break;
            case '-':if(result==(num1-num2)) right=1;
                       else
                           right=0;
                       break;
            case '*':if(result==(num1*num2)) right=1;
                else
                    right=0;
                break;
            case '/':if(num2==0) printf("\ninput wrong! ben ben,ha ha!!");
                else
                {
                    if(result==(num1/num2)) right=1;
                    else
                        right=0;
                }
                break;
         }
         if(right)
             printf("\nyou are ringht!");
         else
             printf("\nplease try again!");
         printf("\ndo you want togo on?(please choose 'y'or'n')");
         scanf("%c",&answer);
        
     }while((answer=='y')||(answer=='Y'));
/*这个时候输入y或者Y都不循环,怎么搞的*/
     return 0;
}

大家不要攻击我,我就是休息下。

惟有学习不断的学习!
2010-10-13 21:10
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
得分:0 
回复 10楼 傻瓜笨笨1986
你搞笑吧!我的运行很好啊!你用的什么软件!

If You Want Something, Go Get It, Period.
2010-10-13 21:18
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
得分:0 
scanf("%*c%c",&answer);
中的 %*c 就是跳过缓冲区中上次输入时留下的 回车 符号,不要给后面的变量赋值

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-10-13 21:24
lishizelibin
Rank: 2
等 级:论坛游民
帖 子:513
专家分:41
注 册:2007-5-10
得分:0 
    int right=0;  //给right赋初值会更好

惟有学习不断的学习!
2010-10-13 21:36
火龙果
Rank: 2
等 级:论坛游民
帖 子:42
专家分:79
注 册:2010-6-26
得分:0 
回复 14楼 jack10141
果然可以哦,你太厉害啦,膜拜中~~~~~
2010-10-13 22:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-322740-1-1.html




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

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