本帖最后由 bcrun 于 2014-03-30 10:53:02 编辑

解决方案 »

  1.   

    #include <stdio.h>
    void main()
    {
     float num;
     int i,n;
     char ch='y';
     do
     {
      n = 1;  printf("input a real:\n");
      scanf("%f",&num);  if(num<1) printf("result:0\n");
      else if(num>=1)    for(i=10;i<=num;i*=10)
        {
          if(num/i>=1)
            n++;
        }
      printf("result:%d\n",n);
      printf("continue(Y/N)?\n");
      getchar();
      ch = getchar();
     }while(ch=='y');
    }
    获取字符变量ch值的时候要将之前获取num值时的回车符号用getchar()去掉,最后的while条件要用==来判断。
      

  2.   

    恩恩,这个程序的 n=1 还应该放在 do - while 循环的外面