zoukankan      html  css  js  c++  java
  • while执行两次的问题,已经解决

    //2013 5 11

    //designer :pengxiaoen

    // function change the number 'd' to 'b'

    #include "stdio.h"

    unsigned long int in_un_number;

    char in_c_choice; int s[33];

    int i;

    void output_function ()

    {  

    printf ("\nSUCCESS\n") ;  

    printf ("%d = (%d)",in_un_number,i);  

    for (i=i-1;i>=0;i--)    printf ("%d",s[i]);   printf ("\n\n\n");

    }

    void choice_function ()

    {  

    printf ("please choice next operation:\n");  

    printf ("'c' for contiue\n");             

    }

    void transform_function(unsigned long int temp)

    {  

    i = 0;    

    temp = in_un_number;    

    while (temp != 0)    

    {      

    s[i] = temp % 2;      

    temp = temp /2;      

    i++;    

    }         

    }

    int main ()

    {            

    in_c_choice = 'c';    

    for (i=33;i>=0;i--) s[i] = 0;        

    printf ("The function is change 'd' to 'b'\n");

    //-------------------------------------------------------------  

    while (in_c_choice == 'c')  

    {   

    printf ("Please enter your positive number : ");   

    scanf("%d",&in_un_number);   

       transform_function(in_un_number);   

    output_function();   

    choice_function();       

    scanf("%d",&in_c_choice);

     }   

    system ("pause");

    }  

    第一次键入值正确

    可是当我再键入 c 的时候就出现了死循环

    不知道为什么?????????????????????????????????????????????????????????

    修改:

    将scanf("%d",&in_c_choice);和choice_functon注释掉,正常

    问题解决办法:

    因为第二次执行scanf的时候,读取内存数据,由于上一次的残留,程序以外其中有数,输入完毕

    解决办法  在scanf之前 清除缓存数据

     fflush(stdin);

  • 相关阅读:
    再战CS231-数组的访问
    win10定时关机
    再战CS231-快速排序
    数据库权限
    numpy
    anaconda
    控件的相对位置与绝对位置-UI界面编辑器(SkinStudio)教程
    共用字体-UI界面编辑器(SkinStudio)教程
    添加图片按钮-UI界面编辑器(SkinStudio)教程
    为窗体设置背景图片-UI界面编辑器(SkinStudio)教程
  • 原文地址:https://www.cnblogs.com/sepeng/p/3073019.html
Copyright © 2011-2022 走看看